c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

AW: [ctsrvdev] Ipcop innerhalb der ipcop-umgebung bauen

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
>