On 12 March 2012 18:10, DJ Delorie <d...@redhat.com> wrote: > > Looks OK to me.
I was about to commit this into my svn checkout and then realized the patch p4 didn't have the changes to configure - So I regenerated it again and then began a journey into the depths of m4 and autoconf for a bit before I gave up. 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. Ramana - correct-configure-output.txt : Patch where everything looks sane. - incorrect-configure-output.txt: Patch where everything looks insane. - Diffs in the configure output : differences in configure files - for ease of viewing.
Index: configure.ac =================================================================== --- configure.ac (revision 185343) +++ configure.ac (working copy) @@ -4177,7 +4177,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: configure =================================================================== --- configure (revision 185343) +++ configure (working copy) @@ -26167,7 +26167,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 @@ -26186,7 +26186,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: config.gcc =================================================================== --- config.gcc (revision 185343) +++ 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= @@ -316,6 +322,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"
Index: configure.ac =================================================================== --- configure.ac (revision 185343) +++ configure.ac (working copy) @@ -4177,7 +4177,8 @@ esac], [gcc_GAS_CHECK_FEATURE([gnu_unique_object], gcc_cv_as_gnu_unique_object, [elf,2,19,52],, - [.type foo, @gnu_unique_object],, +# We need to unquote above to to use the definition from config.gcc. + [.type foo, '$target_type_format_char'gnu_unique_object],, # 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: configure =================================================================== --- configure (revision 185343) +++ configure (working copy) @@ -26167,7 +26167,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 > 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 Index: config.gcc =================================================================== --- config.gcc (revision 185343) +++ 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= @@ -316,6 +322,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"
--- configure 2012-03-14 15:20:52.591266022 +0000 +++ configure-correct 2012-03-14 15:20:11.035268052 +0000 @@ -26167,7 +26167,7 @@ then gcc_cv_as_gnu_unique_object=yes fi elif test x$gcc_cv_as != x; then - $as_echo > 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 @@ -26186,7 +26186,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