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: [discuss] Problem building cross compiler for x86_64


Kai Ruottu wrote:

Manish Katiyar wrote:

Hi,
  yes i am using using Suse Linux Enterprise 9. I have downloaded the
package glibc-devel-2.3.4-23_23.4.x86_64.delta.rpm . Now I need to
just do

Ok, you require more than this, the 'runtime' shared (aimed to '/lib') libraries
are also required. the 'glibc-2.3.4-23_23.4.x86_64.delta.rpm' . Then also
all the else 'glibc*-2.3.4-23_23.4.x86_64.delta.rpm' packages maybe, but
the shared and the development parts are the minimum...


And of course all the 32-bit libraries for the x86_64 bi-arch target should be
installed...



rpm -i glibc-devel-2.3.4-23_23.4.x86_64.delta.rpm and then start building my gcc. Is it correct.? How do I specify where to install the rpm?. Please correct the steps to be followed after installing this rpm.

The libraries could be put below some $sysroot, for instance:

/opt/host-x86_64-suse-linux/...

in 'lib*', 'usr/include', 'usr/lib*' there.

The cross-GCC though searches from '$prefix/$target/...' so the '$sysroot/usr/include'
and '$sysroot/usr/lib64' (the default libs) should be seen as 'include' and 'lib' there.
Symlinking them seen there is the way...


Generally the stuff in 'lib*' should be symlinked to be seen in the 'usr/lib*' too but just
SuSE has used non-standard symlinks to the absolute '/lib*' instead of to the relative
'../../lib*' which a self-made glibc would use. And which Red Hat, Debian etc. other
distros are using too... So be prepared to fix the symlinks so that the 'lib*' stuff is
seen in the 'usr/lib*' too. Or think copying everything there. The 'libc.so' scripts are also
problems and should be edited to not have any absolute paths...


The 32 bit libs will be searched from the '$prefix/$target/lib/32', so the installed 64 bit
libs in '$sysroot/usr/lib64' should also include a symlink '32 -> ../lib'... And also the
'ld-linux*.so.2's plus the 'libc.so.6's should be seen in the 'usr/lib*' directories...


Furthermore the '$prefix/$target/include' should be symlinked to be seen also as the
'$prefix/$target/sys-include'. No sane explanation for this, please ask the GCC
developers why...


When the target C library, headers and libraries, is preinstalled just as the target
binutils are, the GCC build should succeed nicely.


All these things are equivalent to putting different liquids into a car but unfortunately
the GCC documentation has no "Owner's Manual", only that "Driver's Manual"...
Maybe the Linux distro should provide this and describe there where the stuff can
be found... People are expected only to drive their cars, but never opening the hood.
Then these car drivers are really expected to be capable to build cars :-(




------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.org


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