RFC: Proposal for a patch that changes multilib linker scripts.

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Thu Apr 24 11:30:26 UTC 2014


On 22 April 2014 22:41, Steve Ellcey <sellcey at mips.com> wrote:
> On Tue, 2014-04-08 at 16:07 +0200, Bernhard Reutner-Fischer wrote:
>
>> except your PREFIX is more like "<root>/mips64r2/64/el/"
>> i suppose?
>>
>> i.e. your PREFIX is not correct WRT your --with-build-sysroot and/or
>> --with-sysroot=
>>
>> MULTILIB_DIR is supposed to be used for mulitilib setups (in the gcc
>> sense) but since it was apparent back than that we (gcc) 'd also need
>> something like multi-arch support we (uClibc) did not implement looping
>> make over multilib- or multiarch- configs internally in the buildsys but
>> (currently) rely on the user to configure, build and install all the
>> multilib/multiarch variants she wants on their own.
>>
>> Our install-path setup follows what debian needs, see defaults in
>> extra/Configs/Config.in for RUNTIME_PREFIX, DEVEL_PREFIX, MULTILIB_DIR.
>>
>> I hope that clarifies the purpose of the MULTILIB_DIR.
>> Does that answer your question?
>>
>> thanks,
>
> I think that helps clarify their intended use, I am trying to create a
> slightly different structure for my cross compiler which is why I am
> having issues.
>
> For example I was building/installing with
>         PREFIX=<root-location> (i.e. something like /path/uclibc-root)
>         MULTILIB_DIR=mips64r2/64/el
>         DEVEL_PREFIX=/
>
> I am trying to build a uclibc sysroot setup that mimics the glibc one I
> have where there is a single <sysroot>/usr/include for the headers but
> then multiple libc.a files in (for example) <sysroot>/usr/lib/libc.a,
> <sysroot>/mips64r2/usr/lib/libc.a, or
> <sysroot>/mips64r2/64/el/usr/lib/libc.a.
>
> One thing I have just noticed is that this doesn't work because
> usr/include contains uClibc_config.h which is different based on
> what options you used to build uclibc (big or little endian; soft or
> hard float; etc).  All the other header files appear to be identical.

All others might or might not be identical i think but yes,
uClibc_config.h certainly is different. That's why i always thought you
would have to use different DEVEL_PREFIX _and_ RUNTIME_PREFIX
for multiarch installs anyway and leave MULTILIB_DIR alone for such
setups.

What you could of course do (in your own build-script) is to just
have separate uClibc_config.h per-multiarch, prepend that to your
default search-list and share all other headers in one common dir,
iff that works for your set of multi-arches, of course. I doubt that you
can generally do that though, can you?

thanks,


More information about the uClibc mailing list