Re: Building OS independant cross compilers (for ia64)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tom Bachmann kirjoitti:
I try to write a little toy kernel for ppc64 and ia64, mainly to get to
know the architectures. Actually this message is about 2 question, one
the one hand, they're tightly related, on the other hand they're
relatively different (therefore I wasn't sure whether to send 2 messages
or not).

The first question is about what target to build in my case.
Conceptually I want a completely OS-independant toolchain only
consisting of binutils and a C compiler, but which target expresses
this? <target>-unknown-unknown doesn't work (system not recognized).
I would think that there isn't that much difference between
targets for the same CPU if needing only the GCC binaries...
But producing the GCC-helper library, 'libgcc', then is quite
target dependent.  Linuces, SVR4s etc. having the soft-float
routines in their kernels but embedded targets having these
produced into the 'libgcc'.  Then threads etc. are target
dependent...
 For
ppc64, the following configuration options seem to do what I want:
"--prefix=... --target=powerpc64-unknown-linux-gnu --enable-languages=c
- --disable-shared --disable-threads --without-headers --disable-libssp
- --disable-libmudflap".

But the ia64 cross toolchains thing seems to be even more tricky. For
what I know it depends on glibc (depending on kernel-headers?), but I
definitely don't want glibc. I don't think it is conceptually right to
depend on linux kernel headers or glibc headers if neither is used. So
what should one pass here?
Requiring to produce 'libgcc' with the new GCC is one thing...
Maybe it really isn't obligatory at all?   Maybe "producing the
'libgcc.a' etc. stuff" via commands like:

   touch libgcc.a

is enough...   Sometimes people are blind and cannot see that
they could create what the GCC build process cannot create.
But the "created" stuff being really unimportant and using any
time to solve how on earth that unimportant stuff could be
created automatically in the process being only wasted time...

 I tried some options
(--target=ia64-unknown-elf, --with-newlib) to workaround this, without
success (always problems compiling fde-glibc.c obviously related to
headers [stdlib.h, link.h] not found).
Are you sure you really need that 'libgcc' for ia64?   Or this
'fde-glibc.o' routine?  Using a 'touch fde-glibc.o' in the
$build/gcc/libgcc' will "produce" it quite surely, it only is an
empty file and unusable but who cares if it is not needed ever?

Things you are struggling with are quite common and usually
people claim it being impossible to create "only a bare stripped
GCC"  without any libraries... And the main reason being that
the things teached  in the  "Basic course in Unix" were forgotten
long time ago, like "How to create files in Unix" :-)


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux