This is the mail archive of the
mailing list for the libstdc++ project.
Toplevel configury, multilibs, new autoconf versions
- From: Phil Edwards <phil at jaj dot com>
- To: libstdc++ at gcc dot gnu dot org, gcc at gcc dot gnu dot org
- Date: Fri, 25 Jul 2003 16:41:01 -0400
- Subject: Toplevel configury, multilibs, new autoconf versions
The next step in converting to the new autotools is making multilibs work.
I'm using the versions of the files that I put up for testing last night
(see the v3 list). And I've temporarily turned i686-linux into a multilib
target using some harmless option (one of the -f optimizations), just
there to trigger the multilib build mechanisms.
The build is using the value of CXX passed around in the environment.
For libstdc++, it's a special case from the toplevel:
libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
Note the -L options; these get embedded into CXX_FOR_TARGET a few lines
later, which becomes CXX inside the library.
(Why does libstdc++ care about -L options? Because we actually do link
at least one executable during the normal build, to say nothing of the
Nothing anywhere adjusts the value of CXX's -L flags to search the multilib
dirs instead of the primary dir. For a real multilib target, this means
that the program gets compiled with one option, but linked against the
standard primary library. (For my fake i686 multilibs, this would have
succeeded, but the multilibs look to be built bottom up, so the primary
libstdc++.so hadn't been built yet when the multilib's executable tried
to search that directory, and the link failed.)
Ideas are solicited. What we need to do seems clear, but I could use some
help deciding how to go about doing it.
If ye love wealth greater than liberty, the tranquility of servitude greater
than the animating contest for freedom, go home and leave us in peace. We seek
not your counsel, nor your arms. Crouch down and lick the hand that feeds you;
and may posterity forget that ye were our countrymen. - Samuel Adams