On Wed, 2007-02-21 at 16:26 +0100, Hans de Goede wrote: > Hi All, Comments interspersed ... > Now that the setting of all this is clear on to the more interesting stuff > how should cross-devel packages for Fedora look? Proposal: > > 1) binutils, gcc, glibc and other libraries for avr / arm-linux will use the > exact same upstream version as the native versions where-ever possible > > 2) All package names will be prefixed with the same prefix as binutils and > gcc use, examples: > avr-binutils, avr-gcc, arm-linux-binutils, arm-linux-gcc, arm-linux-glibc Fine with me - It's the same approach am I am using for my cross-rpms. > 3) The as,ld and gcc binaries: > * will be named avr-as, avr-ld and avr-gcc resp arm-linux-as, arm-linux-ld > arm-linux-gcc > * will be installed under /usr/bin > * will have links called as, ld and gcc installed under /usr/avr/bin resp > /usr/arm-linux/bin. More on these dirs below This is the default with GCC. > 4) libraries respectively headers will be installed under /usr/avr/lib resp > /usr/avr/include for avr and under /usr/arm-linux/lib resp > /usr/arm-linux/include for arm-linux. I know this doesn't seem FHS > compliant, still I believe this is the right way, The default for GCC is ${prefix}/$(target)/{lib|include}. This default is almost impossible to change. > 5) Docs (manpages, info and docs under %doc) will not be installed as they > will be identical to the native version docs, What you say only partially applies to gcc/binutils/gdb. Their section 3 man-pages are canonicalized (they install as <target>-manpage), hence are free of conflicts with a native gcc. section-7 man-pages and infos however conflict. > Problems: > > 7) With the arm-linux target some libraries may have target specific compile > options, for example the gp2x handheld uses a special version of SDL with > patches to support the gp2x input buttons and video. > > Proposed solution: > a) install headers and libs for special platforms/targets under their own > dir, for gp2x that would be /usr/arm-linux-gp2x/{lib,include} That's the standard GCC approach for cross-toolchains. > b) and then create binutils and gcc wrappers called special-prefix-binname, > for example arm-linux-gp2x-gcc, these wrappers add > /usr/arm-linux-gp2x/{lib,include} to the beginning of the lib / > /include search paths and add flags for the cpu-type and other > hardware specifics. These wrappers would be put in a package called > gp2x-devel, which besides containing these wrappers would also Requires: > all the necesarry bits, so that someone who wants todo gp2x development > can just do a "yum install gp2x-devel" and get started. This is the classical standard GCC wrapper approach for non-multilib'ed cross-toolchains. > 8) The SRPMS for all these packages will most of the time contain the exact > same tarbals as the native binutils / gcc / libs > > Possible solutions: > a) Live with the extra diskspace / bandwidth cost this induces upon > our mirrors That's what I'd do. An alternative would be to build different versions inside of the same SRPMS at one time. Ralf -- fedora-extras-list mailing list fedora-extras-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-extras-list