[oe] grub - confusing build problem

Sledz, Steffen sledz at DResearch.DE
Fri Oct 17 09:33:41 UTC 2008


I've a really confusing problem compiling grub with OE.  :(

I've to machines: my notebook and a vmware. Both are 32-bit machines, running openSUSE 11.0 (same update level) and use the same version from org.openembedded.dev. I tried to build an Angstrom image for x86 with same command lines one both machines. On the notebook grub_0.97.bb builds fine. On the vm the compile stage fails with:

ccache i486-angstrom-linux-gcc -march=i486 -DHAVE_CONFIG_H -I. -I.. -I../stage1  -isystem/home/DRESEARCH/sledz/oe/tmp/staging/i486-angstrom-linux/usr/include -Wall -Wmissing-prototypes -Wunused -Wshadow -Wpointer-arith -falign-jumps=1 -falign-loops=1 -falign-functions=1 -Wundef  -fno-builtin -nostdinc  -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -DHAVE_CONFIG_H -I. -I.. -I../stage1 -isystem/home/DRESEARCH/sledz/oe/tmp/staging/i486-angstrom-linux/usr/include -Wall -Wmissing-prototypes -Wunused -Wshadow -Wpointer-arith -falign-jumps=1 -falign-loops=1 -falign-functions=1 -Wundef -isystem/home/DRESEARCH/sledz/oe/tmp/staging/i486-angstrom-linux/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2 -MT start_exec-start.o -MD -MP -MF .deps/start_exec-start.Tpo -c -o start_exec-start.o `test -f 'start.S' || echo './'`start.S
start.S: Assembler messages:
start.S:399: Error: undefined symbol `L0^A' in operation
make[3]: *** [start_exec-start.o] Error 1
make[3]: Leaving directory `/home/DRESEARCH/sledz/oe/tmp/work/i486-angstrom-linux/grub-0.97-r3.1/grub-0.97/stage2'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/DRESEARCH/sledz/oe/tmp/work/i486-angstrom-linux/grub-0.97-r3.1/grub-0.97/stage2'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/DRESEARCH/sledz/oe/tmp/work/i486-angstrom-linux/grub-0.97-r3.1/grub-0.97'
make: *** [all] Error 2

But there is no symbol `L0^A' in the mentioned line. Until this point both log.do_compile are completely the same.  :(

I started devshell on both machines and called the command line above manually with a little difference. Instead of compiling start.S i just run the preprocessor:

i486-angstrom-linux-gcc -march=i486 -DHAVE_CONFIG_H -I. -I.. -I../stage1  -isystem/home/DRESEARCH/sledz/oe/tmp/staging/i486-angstrom-linux/usr/include -Wall -Wmissing-prototypes -Wunused -Wshadow -Wpointer-arith -falign-jumps=1 -falign-loops=1 -falign-functions=1 -Wundef  -fno-builtin -nostdinc  -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -DHAVE_CONFIG_H -I. -I.. -I../stage1 -isystem/home/DRESEARCH/sledz/oe/tmp/staging/i486-angstrom-linux/usr/include -Wall -Wmissing-prototypes -Wunused -Wshadow -Wpointer-arith -falign-jumps=1 -falign-loops=1 -falign-functions=1 -Wundef -isystem/home/DRESEARCH/sledz/oe/tmp/staging/i486-angstrom-linux/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -MT start_exec-start.o -MD -MP -MF .deps/start_exec-start.Tpo -E -o start_exec-start.S start.S

After that i compared both start_exec-start.S files and found this one difference:

diff -U0 start_exec-start.S ok-start_exec-start.S 
--- start_exec-start.S  2008-10-17 10:30:16.000000000 +0200
+++ ok-start_exec-start.S       2008-10-17 10:29:30.000000000 +0200
@@ -323 +323 @@
- .word (113482 + 511) >> 9
+ .word (users + 511) >> 9

Hmmmm? Any idea what's wrong here? What is 'users'?
Sorry, but i'm not an assembler specialist.

Would be really nice if someone could help.

Thx,
Steffen


More information about the Openembedded-devel mailing list