diff options
Diffstat (limited to 'libc/configure')
-rwxr-xr-x | libc/configure | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/libc/configure b/libc/configure index 0a2424e2b..4b6aa9de2 100755 --- a/libc/configure +++ b/libc/configure @@ -6099,17 +6099,19 @@ else cat > conftest.c <<EOF int _start (void) { return 0; } int __start (void) { return 0; } + int foo (void) { return 1; } int (*fp) (void) __attribute__ ((section (".init_array"))) = foo; + EOF -if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c - -static -nostartfiles -nostdlib 1>&5' +if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest + conftest.c -static -nostartfiles -nostdlib + 1>&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } -then + test $ac_status = 0; }; }; then : if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then libc_cv_initfini_array=yes else @@ -6119,6 +6121,7 @@ else libc_cv_initfini_array=no fi rm -f conftest* + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_initfini_array" >&5 $as_echo "$libc_cv_initfini_array" >&6; } @@ -6135,19 +6138,20 @@ else cat > conftest.c <<EOF int _start (void) { return 0; } int __start (void) { return 0; } -int puts (const char *s) { return 0; } -__attribute__ ((constructor)) void ctor (void) { puts("ctor"); } -__attribute__ ((destructor)) void dtor (void) { puts("dtor"); } + +__attribute__ ((constructor)) void ctor (void) { asm (""); } +__attribute__ ((destructor)) void dtor (void) { asm (""); } + EOF - if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest - conftest.c -static -nostartfiles -nostdlib 1>&5' +if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest + conftest.c -static -nostartfiles -nostdlib + 1>&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } - then - if $READELF -WS conftest$ac_exeext | $AWK ' + test $ac_status = 0; }; }; then : + if $READELF -WS conftest$ac_exeext | $AWK ' { gsub(/\[ */, "[") } $2 == ".ctors" || $2 == ".dtors" { size = strtonum("0x" $6) @@ -6163,10 +6167,13 @@ EOF '; then : libc_cv_ctors_header=no fi - else - as_fn_error $? "missing __attribute__ ((constructor)) support??" "$LINENO" 5 - fi - rm -f conftest* + +else + as_fn_error $? "missing __attribute__ ((constructor)) support??" "$LINENO" 5 + +fi +rm -f conftest* + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ctors_header" >&5 $as_echo "$libc_cv_ctors_header" >&6; } |