This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RS6000: Missing EABI symbols at link time
On Mon, Feb 06, 2006 at 03:56:20PM +0000, Nick Clifton wrote:
> So it appears to be a test to set the gcc_no_link flag. I do not know
> why this test is being run however.
It's always run. Here's how it works: we figure out whether we can
link. If we can link, then later link tests are allowed to run, and
succeed or fail on their own merits. If we can't link, then later link
tests are an error. This serves to prevent bogus configure decisions
based on link tests when linking is unsupported, yet at the same time
allows clever configure scripts to avoid link tests in those cases
but use them for native links.
> Which according to the config.log comes from:
>
> configure:88567: checking for shared libgcc
> configure:88572: error: Link tests are not allowed after
> GCC_NO_EXECUTABLES.
>
> Which appears to be related to symbol versioning checks:
>
> # Check to see if 'darwin' or 'darwin-export' can win.
> if test x$enable_symvers = xdarwin-export ; then
> enable_symvers=darwin
> fi
>
> # Check to see if 'gnu' can win.
> if test $enable_symvers = gnu
> || test $enable_symvers = gnu-versioned-namespace; then
> # Check to see if libgcc_s exists, indicating that shared libgcc
> # is possible.
> echo "$as_me:$LINENO: checking for shared libgcc" >&5
> echo $ECHO_N "checking for shared libgcc... $ECHO_C" >&6
> ac_save_CFLAGS="$CFLAGS"
> CFLAGS=' -lgcc_s'
> if test x$gcc_no_link = xyes; then
> { { echo "$as_me:$LINENO: error: Link tests are not allowed after
> GCC_NO_EXECUTABLES." >&5 <--- This is 88572
>
> Does this help ?
That test is recently added. It is apparently bogus in this case. It
should be skipped for targets that aren't going to build a shared
library, whatever the appropriate widget is for that; if we aren't
building a shared libstdc++, then we don't care about symbol
versioning.
--
Daniel Jacobowitz
CodeSourcery