This is the mail archive of the crossgcc@sources.redhat.com 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] |
* Robert Schwebel <robert@schwebel.de> wrote: Hi, > PTXdist has a generic mechanism to apply patches to a packet before > running it's prepare stages. The patches are either taken from our patch > server or from a local directory. You could do something similar for > sysroot. My distro buildsystem (Briegel) also has such a facility. It can apply version dependent patches after unpacking the sourcetree. You maybe like to have a look at the patches I've collected: rsync://nibiru.metux.de/metux-patches/ <snip> > By the way - what _is_ sysroot? hmm, good question ;-P I'm using a sysroot'ed crosscompiler for cleanroom-builds which should not use anything but the stuff in the jail. Many packages (ie openssh) still fail, since they pass things lile -L/usr/ssl/lib/ to ld, so it really takes the libs from there instead of {SYSROOT}/usr/lib. Now I'm thinking about two different approaches to solve this: a) patch the buildsystems of individual packages to use a $SYSROOT variable and work entirely within this directory. All pathes, also those supplied to configure are always relative to $SYSROOT. This makes a lot of work (fixing many buildscripts), but seems to be quite intuitive. But it also brings the problem that probably some packages need stuff outside of $SYSROOT, ie stuff from other packages which are not installed in the sysroot, but linked against (ie static libraries ?) b) code a frontend for the toolchain commands, which translate the absolute pathes to point within $SYSROOT. We must be careful not to touch relative pathes, since there maybe necessary pathes (includes + libs) within the sourcetree. So we dont need any changes in the packages build stuff an we also do not have to cover in the configure parameters about sysroot'ing (ie passing pathes within $SYSROOT instead of abolute pathes to configure). Probably this does not solve all situations, ie some stupid buildsystem could supply absolute pathes within its own sourcetree. It also makes trouble as soon as the application tries to touch files outside of the sourcetree in other ways than with the masqueraded toolchain commands. c) all pathes starting with the sysroot symbol (ie "=") are translated to be realtive to $SYSROOT. If an external program is called to retrieve installation pathes of some lib (/usr/bin/foo-config/ or pkgconfig query), its output has to be parsed an the SYSROOT prefix is added. (We probably need a way for explicitly overriding this behaviour in certain situations ... no idea if this is really needed someday) This solution seems to be the most cleanest and most portable way and should (IMHO) be the for all packages to go, so we probably could fix autoconf (btw: is autoconf more than a collection of bugs ?) to solve this problem more generally. I'd prefer version c). cu -- --------------------------------------------------------------------- Enrico Weigelt == metux IT service phone: +49 36207 519931 www: http://www.metux.de/ fax: +49 36207 519932 email: contact@metux.de cellphone: +49 174 7066481 --------------------------------------------------------------------- -- DSL ab 0 Euro. -- statische IP -- UUCP -- Hosting -- Webshops -- --------------------------------------------------------------------- ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |