This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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

Re: Multilib Support


David,
All,

(original message missing on the mailing list, so entirely quoted below
for reference).

On Monday 13 July 2009 18:58:08 David DeBonis wrote:
> I am currently adding multilib support to crosstool-ng through a patch
> specific to the Xilinx Microblaze soft processor with MMU support.  The
> patch works to a point.  I can dumpspecs on the object files that are
> created and see some custom configs (i.e. xl-barrel-shift).  I create
> glibc variants into subdirectories of the lib directory and can see all
> of the variant .so's in the targets/XXX/build/build-libc directory and
> sub-directories.

How do you go to generate all the variants?

Normally, gcc builds a multilib compiler by default. crosstool-NG disables
multilib support in scripts/build/cc/gcc.sh, at line 170 and 277.

Then, the glibc's ./configure checks for multilib support in the compiler
ad builds all relevant combinations, and they should get installed when
you run "make install".

> All that I modified was the script/build/libc/glibc.sh 
> and seem to be missing the step that moves all of the sub shared object
> libraries of the variant types over to the final toolchain.

Doesn't the install rule takes care of that?

> Could you 
> point me to the section where I need to either iterate over my variants
> or include an extra directory depth level in the search for so's?

Well, first, I'd make sure gcc is configured without --disable-multilib.

> I have been looking through the populate.sh  but am not sure if I am on
> the right track.

Nope. populate.sh is used afterward, when the toolchain is complete. Normaly,
when you build packages, you install them in a staging area. When all your
packages are built, the staging area contains all your packages installed
files, but is missing some important bits: the libraries from the toolchain.
populate.sh copies your staging area, and completes the copy with the
libraries from the toolchain (eg. libc.so...)

> Any guidance is greatly appreciated and I would be more than willing to
> submit a patch once complete if anyone is interested.

Yes, sure, this is interesting! Just make multilib a config option! :-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +0/33 662376056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| --==< ^_^ >==-- `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
`------------------------------^-------^------------------^--------------------'


--
For unsubscribe information see http://sourceware.org/lists.html#faq


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