This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libffi/21782] configure: error: unknown endianess


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2005-05-30 14:40 -------
> Aaah... You mean adding '-v' to 'xgcc', not to 'conftest' itself. My wrong.

Yup, sorry for being too vague.

> Please find the output of the following command attached.

The problem stems from "-lgcc --as-needed -lgcc_s_sparcv9 --no-as-needed -lc
-lgcc --as-needed -lgcc_s_sparcv9 --no-as-needed" passed to the linker.  There
are probably undefined weak symbols in conftest that resolve to symbols in
libgcc_s.  Could you run readelf --syms conftest | grep UND?

--as-needed/--no-as-needed has been introduced by the 2.15 linker and the
compiler autodetects it.  Now, because Solaris doesn't use the --eh-frame-hdr
optimization, there are probably EH-related undefined weak symbols in every
single executable.  The end result is that libgcc_s is always "needed", so the
default has effectively been switched from -static-libgcc to -shared-libgcc.
That's PR bootstrap/14992.

This has been correct in 4.x by:

2004-04-23  Alan Modra  <amodra@bigpond.net.au>

	PR bootstrap/14992
	* gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
	* config/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.

and 3.4.x by

2004-04-18  Alan Modra  <amodra@bigpond.net.au>

	PR bootstrap/14992
	* configure.ac: Define HAVE_LD_AS_NEEDED only for linux.
	* configure: Regenerate.
	* gcc.c (init_gcc_specs): Revert earlier change.

but not in 3.3.x.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|                            |14992
             Status|WAITING                     |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-05-30 14:40:07
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21782


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]