All of lore.kernel.org
 help / color / mirror / Atom feed
* Need help: GCC cross compiler and OS/platform dependency
@ 2011-08-05  5:14 amit mehta
  0 siblings, 0 replies; only message in thread
From: amit mehta @ 2011-08-05  5:14 UTC (permalink / raw)
  To: kernelnewbies

This is not a Linux kernel query, rather a generic OS related information
that i seek. I was going through the manpages of gcc and if you go further down,
you'll find infomation on "-b" flag. Quoting from gcc man page:
" -b machine
            The argument machine specifies the target machine for
            compilation.

            The value to use for machine is the same as was
            specified as the machine type when configuring GCC as a
            cross-compiler.  For example, if a cross-compiler was
            configured with configure arm-elf, meaning to compile
            for an arm processor with elf binaries, then you would
            specify -b arm-elf to run that cross compiler.  Because
            there are other options beginning with -b, the
            configuration must contain a hyphen.
"
So what i understood is that on my x86_64 bit machine, gcc -b arm-elf
<foo.c> will not work,
instead, you should have something like this:
i586-elf-gcc <foo.c>,  which will produce an object code which can run
on i586 platform.
(Please correct if i'm wrong). I dig little further by trying to build
gcc cross compiler
for x86(32 bit) target for educational purpose by following the instructions
provided here:
http://wiki.osdev.org/GCC_Cross-Compiler

Though I was able to build the gcc(i586-elf-gcc), I haven't been able
to build C library and the C runtime
magic yet, partly due to the build failure and mostly due to
incognizance on the details of these pieces working together.
hence please throw in some light on how these different pieces work together.

<<<snip>>>
goon:/usr/local/cross/bin # ./i586-elf-gcc -v
Using built-in specs.
COLLECT_GCC=./i586-elf-gcc
COLLECT_LTO_WRAPPER=/usr/local/cross/libexec/gcc/i586-elf/4.6.0/lto-wrapper
Target: i586-elf
Configured with: ../gcc-4.6.0/configure --target=i586-elf
--prefix=/usr/local/cross --disable-n\
ls --enable-languages=c --without-headers
Thread model: single
gcc version 4.6.0 (GCC)
<<<snip>>>

<<<error>>>
goon:/usr/src/build-gcc # make all-target-libgcc
checking for i586-elf-gcc...  /usr/src/build-gcc/./gcc/xgcc
-B/usr/src/build-gcc/./gcc/ -B/usr/local/cross/i586-elf/bin/
-B/usr/local/cross/i586-elf/lib/ -isystem
/usr/local/cross/i586-elf/include -isystem
/usr/local/cross/i586-elf/sys-include
checking for suffix of object files... configure: error: in
`/usr/src/build-gcc/i586-elf/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make: *** [configure-target-libgcc] Error 1

goon:/usr/src/build-gcc # grep -i error config.log
| /* Override any GCC internal prototype to avoid an error.
conftest.c:10:19: error: ppl_c.h: No such file or directory
conftest.c:16: error: 'choke' undeclared (first use in this function)
conftest.c:16: error: (Each undeclared identifier is reported only once
conftest.c:16: error: for each function it appears in.)
conftest.c:16: error: expected ';' before 'me'
stage2_werror_flag=''
<<<error>>>

-Amit

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-08-05  5:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-05  5:14 Need help: GCC cross compiler and OS/platform dependency amit mehta

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.