Patchwork [ARM/,configury] Add fall-back check for gnu_unique_object

login
register
mail settings
Submitter Ramana Radhakrishnan
Date March 15, 2012, 10:56 a.m.
Message ID <CACUk7=UNFFC1kBVJy0=MTosTDrtvPT+Gx=8MV-nPqw7p4TdVnA@mail.gmail.com>
Download mbox | patch
Permalink /patch/146871/
State New
Headers show

Comments

Ramana Radhakrishnan - March 15, 2012, 10:56 a.m.
On 14 March 2012 15:52, Paolo Bonzini <bonzini@gnu.org> wrote:
> Il 14/03/2012 16:37, Ramana Radhakrishnan ha scritto:
>> Empirically I spotted this odd behaviour  with
>> gcc_GAS_CHECK_FEATURE and comments - Attached are the 2 alternate
>> patches that I tried and the difference in the configure scripts
>> themselves . I am no m4 expert but it does look like the m4_substr in
>> gcc_GAS_CHECK_FEATURE doesn't really like that comment there.
>>
>> Any ideas anyone ? I must decline any knowledge of m4 at this point
>> and I don't want to commit this until I understand what's going on
>> here.
>
> Yes, the # comment is actually part of the macro argument.  If you want
> to write a "real" comment (i.e. at the m4 rather than shell level) use
> "dnl" instead of "#".
>
> The patch with correct configure output is ok.

Thanks - this is what I committed.

Ramana





2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config.gcc (target_type_format_char): New. Document it. Set it for
        arm*-*-* .
	* configure.ac (gnu_unique_option): Use target_type_format_char in test.
        Comment rationale.
	* configure: Regenerate .



Ramana


>
> Paolo
Ramana Radhakrishnan - April 10, 2012, 9:11 a.m.
>> The patch with correct configure output is ok.
>
> Thanks - this is what I committed.

Is this something that can be considered for backporting to release
branches ? This patch technically doesn't fix a regression but brings
in line behaviour of the normal bootstrap for %gnu_unique_object ?

http://gcc.gnu.org/ml/gcc-patches/2012-03/msg01046.html


regards,
Ramana

>
> Ramana
>
>
>
>
>
> 2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
>
>        * config.gcc (target_type_format_char): New. Document it. Set it for
>        arm*-*-* .
>        * configure.ac (gnu_unique_option): Use target_type_format_char in test.
>        Comment rationale.
>        * configure: Regenerate .
>
>
>
> Ramana
>
>
>>
>> Paolo
Ramana Radhakrishnan - June 20, 2012, 11:49 p.m.
On 10 April 2012 10:11, Ramana Radhakrishnan
<ramana.radhakrishnan@linaro.org> wrote:
>>> The patch with correct configure output is ok.
>>
>> Thanks - this is what I committed.
>
> Is this something that can be considered for backporting to release
> branches ? This patch technically doesn't fix a regression but brings
> in line behaviour of the normal bootstrap for %gnu_unique_object ?

Ping - Is this ok to backport to the 4.7 and 4.6 branches ?

Ramana
Richard Guenther - June 21, 2012, 9:14 a.m.
On Thu, 21 Jun 2012, Ramana Radhakrishnan wrote:

> On 10 April 2012 10:11, Ramana Radhakrishnan
> <ramana.radhakrishnan@linaro.org> wrote:
> >>> The patch with correct configure output is ok.
> >>
> >> Thanks - this is what I committed.
> >
> > Is this something that can be considered for backporting to release
> > branches ? This patch technically doesn't fix a regression but brings
> > in line behaviour of the normal bootstrap for %gnu_unique_object ?
> 
> Ping - Is this ok to backport to the 4.7 and 4.6 branches ?

I'd say yes.

Thanks,
Richard.

Patch

Index: gcc/configure
===================================================================
--- gcc/configure	(revision 185427)
+++ gcc/configure	(working copy)
@@ -26081,7 +26081,7 @@ 
   then gcc_cv_as_gnu_unique_object=yes
 fi
   elif test x$gcc_cv_as != x; then
-    $as_echo '.type foo, @gnu_unique_object' > conftest.s
+    $as_echo '.type foo, '$target_type_format_char'gnu_unique_object' > conftest.s
     if { ac_try='$gcc_cv_as $gcc_cv_as_flags  -o conftest.o conftest.s >&5'
   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
   (eval $ac_try) 2>&5
@@ -26100,7 +26100,8 @@ 
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gnu_unique_object" >&5
 $as_echo "$gcc_cv_as_gnu_unique_object" >&6; }
 if test $gcc_cv_as_gnu_unique_object = yes; then
-  # Also check for ld.so support, i.e. glibc 2.11 or higher.
+  # We need to unquote above to to use the definition from config.gcc.
+# Also check for ld.so support, i.e. glibc 2.11 or higher.
    if test x$host = x$build -a x$host = x$target &&
        ldd --version 2>/dev/null &&
        glibcver=`ldd --version 2>/dev/null | sed 's/.* //;q'`; then
Index: gcc/configure.ac
===================================================================
--- gcc/configure.ac	(revision 185427)
+++ gcc/configure.ac	(working copy)
@@ -4113,7 +4113,8 @@ 
   esac],
  [gcc_GAS_CHECK_FEATURE([gnu_unique_object], gcc_cv_as_gnu_unique_object,
    [elf,2,19,52],,
-   [.type foo, @gnu_unique_object],,
+   [.type foo, '$target_type_format_char'gnu_unique_object],,
+# We need to unquote above to to use the definition from config.gcc.
 # Also check for ld.so support, i.e. glibc 2.11 or higher.
    [[if test x$host = x$build -a x$host = x$target &&
        ldd --version 2>/dev/null &&
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 185427)
+++ gcc/config.gcc	(working copy)
@@ -182,6 +182,11 @@ 
 #			the --with-sysroot configure option or the
 #			--sysroot command line option is used this
 #			will be relative to the sysroot.
+# target_type_format_char 
+# 			The default character to be used for formatting
+#			the attribute in a
+#			.type symbol_name, ${t_t_f_c}<property>
+#			directive.
 
 # The following variables are used in each case-construct to build up the
 # outgoing variables:
@@ -232,6 +237,7 @@ 
 need_64bit_hwint=
 need_64bit_isa=
 native_system_header_dir=/usr/include
+target_type_format_char='@'
 
 # Don't carry these over build->host->target.  Please.
 xm_file=
@@ -314,6 +320,7 @@ 
 arm*-*-*)
 	cpu_type=arm
 	extra_headers="mmintrin.h arm_neon.h"
+	target_type_format_char='%'
 	c_target_objs="arm-c.o"
 	cxx_target_objs="arm-c.o"
 	extra_options="${extra_options} arm/arm-tables.opt"