2.95.2: problem with installed locations

David Starks-Browning starksb@ebi.ac.uk
Fri Jan 28 09:15:00 GMT 2000


Greetings,

In 2.95.2, there seems to be a problem with the installed locations of
_G_config.h and assert.h (where they exist) and libiberty.a.

We have a single shared filesystem for 4 different platforms:

arch =	alpha-osf1
	i386-linux
	mips-irix
	sparc-solaris

Our <prefix> is /sw/common, <exec-prefix> is /sw/common/arch/${arch}.

On alphaev56-dec-osf4.0e, the configure command looks like this:

export LDFLAGS="-Wl,-rpath,/sw/common/arch/alpha-osf1/lib"
/sw/common/src/gcc-2.95.2/configure --prefix=/sw/common --exec-prefix=/sw/common/arch/alpha-osf1

Similarly, on sparc-sun-solaris2.7, it looks like this:

export LDFLAGS="-Wl,-R,/sw/common/arch/sparc-solaris/lib"
/sw/common/src/gcc-2.95.2/configure --prefix=/sw/common --exec-prefix=/sw/common/arch/sparc-solaris

You should get the idea.  The other 2 targets were i686-pc-linux-gnu
and mips-sgi-irix6.5.

Being careful that _objdir_ was outside both _srcdir_ and <prefix>,
"make bootstrap" followed by "make install" creates

	include
	lib
in
	<exec-prefix>/../<target>

('include' may be empty or contain _G_config.h and/or assert.h
depending on the target, and 'lib' contains libiberty.a)

I consider this to be a bug, because architecture-dependent files are
outside of <exec-prefix>.  (Or am I wrong about that?)

Once installed, GCC seems to work just fine on all targets.  Compiling
a simple test C++ program shows:

g++ -v tgcc.cc
Reading specs from /sw/common/arch/alpha-osf1/lib/gcc-lib/alphaev56-dec-osf4.0e/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /sw/common/arch/alpha-osf1/lib/gcc-lib/alphaev56-dec-osf4.0e/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dunix -D__osf__ -D_LONGLONG -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__unix__ -D__osf__ -D_LONGLONG -D__SYSTYPE_BSD__ -D_SYSTYPE_BSD -D__unix -D__SYSTYPE_BSD -Asystem(unix) -Asystem(xpg4) -D__EXCEPTIONS -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus -Acpu(alpha) -Amachine(alpha) -D__alpha -D__alpha__ -D__alpha_ev5__ -Acpu(ev5) -D__alpha_bwx__ -Acpu(bwx) tgcc.cc /tmp/cc3nEatL.ii
GNU CPP version 2.95.2 19991024 (release)
#include "..." search starts here:
#include <...> search starts here:
 /sw/common/arch/alpha-osf1/lib/gcc-lib/alphaev56-dec-osf4.0e/2.95.2/../../../../../../include/g++-3
 /usr/local/include
 /sw/common/arch/alpha-osf1/lib/gcc-lib/alphaev56-dec-osf4.0e/2.95.2/../../../../../alphaev56-dec-osf4.0e/include
 /sw/common/arch/alpha-osf1/lib/gcc-lib/alphaev56-dec-osf4.0e/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
[...]

The 3rd include path in the <...> search is the offending one.  Are
there too many '../'s in a regexp somewhere?

It's a bit of a housekeeping problem for us to have gcc <target>
directories outside of <exec-prefix>.

Thanks for your help.

Kind regards,
David

 -------------------------------------------------------------------
  David Starks-Browning                  | starksb@ebi.ac.uk
  EMBL Outstation --                     |
  The European Bioinformatics Institute  |
  Wellcome Trust Genome Campus           | tel: +44 (1223) 494 616
  Hinxton, Cambridge, CB10 1SD, UK       | fax: +44 (1223) 494 468
 -------------------------------------------------------------------



More information about the Gcc-bugs mailing list