Absender: Jens Friedrich
Datum: Mo, 19.12.2005 21:51:23
In-reply-to:
<Pine.LNX.4.58.0512191004420.6686@xxxxxxxxxxxxxxxxxxxx>
Ich hab im Makefile den propolice-patch mal ebenfalls auskommentiert, mit dem ergebnis, dass jetzt nur noch die Fehler von "arch/um/kernel/tt/unmap_fin.o" auftauchen (o wunder). Wenn noch sscanf() und strpbrk() multiple-defined sind, hat das doch was mit den linker-optionen zu tun, das muss man doch in den griff bekommen... hier müssen doch die beiden fkt. statisch in main.o gelandet sein, und beim linken mit vmlinux.o kracht's dann... Oder? @peter: nur den propolice-patch rauszulassen hat nicht gereicht, hast du noch weitere anpassungen vorgenommen, die evtl. nicht im diff zu finden sind? Viele Grüsse Jens > -----Ursprüngliche Nachricht----- > Von: ctsrvdev-bounces@xxxxxxxxxxxxxxxxx > [mailto:ctsrvdev-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von > Peter Siering > Gesendet: Montag, 19. Dezember 2005 10:06 > An: Entwicklung rund um den c't Server > Betreff: Re: [ctsrvdev] Ipcop innerhalb der ipcop-umgebung bauen > > Hallo, > > On Sun, 18 Dec 2005, Jens Friedrich wrote: > > > ich habe mal nach Peters Methode versucht, den IPCop 1.4.10 mit dem > > uml-linux-2.4.31-bs2-wanninger-patch > > zu bauen. Das geht bis zu dem gleichen Problem gut, weshalb > ich bei V > > 1.4.9 > > - wie in meinemHowTo beschrieben - > > den uml-ipcop-kernel ausserhalb der der LFS-Umgebung des > ipcop bauen > > musste, da fehler beim zusammenbauen von vmlinuz.o und > linux zum abbruch führen. > > > > @Peter: Gab's dieses Problem bei V1.4.6 nicht? > > Wenn ich in diesem Zustand den kompletten Tree aus der LFS auf den > > Standard-Sarge-Server kopiere und kompiliere, läufts durch! > > Any Comments? > > > > Aus dem logfile: > > nm vmlinux | grep -v '\(compiled\)\|\(\.o$\)\|\( [aUw] > > \)\|\(\.\.ng$\)\|\(LASH[RL]DI\)' | sort > System.map > pages=$(( 1 << 2 > > )) ; \ > > m4 -DSTART=$((0xc0000000 - ((0 + 1) * 0x20000000))) > -DELF_ARCH=i386 \ > > -DELF_FORMAT=elf32-i386 -DMODE_TT \ > > -DKERNEL_STACK_SIZE=$(( 4096 * $pages )) > arch/um/link.ld.in > > > arch/um/link.ld mv vmlinux vmlinux.o ccache /usr/bin/gcc > > -Wl,-T,arch/um/link.ld -static -Wl,--wrap,malloc -Wl,--wrap,free > > -Wl,--wrap,calloc \ > > -o linux arch/um/main.o vmlinux.o -L/usr/lib -lutil > > vmlinux.o(.text+0xe8df8): In function `__stack_smash_handler': > > : multiple definition of `__stack_smash_handler' > > > arch/um/kernel/tt/unmap_fin.o(.text+0x130):../sysdeps/unix/sysv/linux/ > > stack_ > > protector.c:116: first defined here > > > /usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/../../../../i386-pc-linux-gnu > > /bin/l > > d: Warning: size of symbol `__stack_smash_hand ler' changed > from 642 > > in arch/um/kernel/tt/unmap_fin.o to 26 in vmlinux.o > > vmlinux.o(.data+0xd364): multiple definition of `__guard' > > > arch/um/kernel/tt/unmap_fin.o(.bss+0x0):../sysdeps/generic/set env.c:332: > > first defined here > > > /usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/../../../../i386-pc-linux-gnu > > /bin/l > > d: Warning: size of symbol `__guard' changed f rom 32 in > > arch/um/kernel/tt/unmap_fin.o to 4 in vmlinux.o > > vmlinux.o(.text+0xe87d4): In function `sscanf': > > : multiple definition of `sscanf' > > > arch/um/kernel/tt/unmap_fin.o(.text+0x300d0):/usr/src/glibc-2.3.3-lfs- > > 5.1/st > > dio-common/sscanf.c:31: first defined here > > > /usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/../../../../i386-pc-linux-gnu > > /bin/l > > d: Warning: size of symbol `sscanf' changed fr om 35 in > > arch/um/kernel/tt/unmap_fin.o to 26 in vmlinux.o > > vmlinux.o(.text+0xe7880): In function `strpbrk': > > : multiple definition of `strpbrk' > > > arch/um/kernel/tt/unmap_fin.o(.text+0x32880):../sysdeps/i386/s trpbrk.S:38: > > first defined here > > > /usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/../../../../i386-pc-linux-gnu > > /bin/l > > d: Warning: size of symbol `strpbrk' changed f rom 179 in > > arch/um/kernel/tt/unmap_fin.o to 67 in vmlinux.o > > collect2: ld returned 1 exit status > > make[1]: *** [linux] Error 1 > > make[1]: Leaving directory `/usr/src/uml_linux-2.4.31' > > > > sieht auf den ersten Blick nach dem typischen Problem aus: > Sobald tt und skas aktiv sind, klappt das Übersetzen mit > aktivierten propolice/ stack protection patches im Kernel > nicht mehr. In den Patches, die ich parallel zur > Veröffentlichung des howtos bei uns auf den Server gespielt > habe, sind im Kernel-Makefile Optionen drin, die das > ausschalten. Vermutlich spielt das bei externem Übersetzen > keine Geige, weil im Host-System die propolice-Geschichten > für den Linker nicht erreichbar sind. > > Die eigentliche Ursache dafür habe ich nie gefunden ;-( > > Gruß, > Peter > _______________________________________________ > ctsrvdev Mailingliste > ctsrvdev@xxxxxxxxxxxxxxxxx > http://www.heise.de/bin/newsletter/listinfo/ctsrvdev >