* 2.6.8 link failure for powerpc-970? @ 2004-09-20 8:24 Dan Kegel 2004-09-20 8:35 ` Arjan van de Ven 0 siblings, 1 reply; 9+ messages in thread From: Dan Kegel @ 2004-09-20 8:24 UTC (permalink / raw) To: Linux Kernel Mailing List I'm trying to verify that I can build toolchains and compile and link kernels for a large set of CPU types using simple kernel config files. I'm also somewhat foolishly trying to do all this with gcc-3.4.2. So any problems I run into are a bit hard to pin down to compiler, kernel, or user error, since this is mostly new territory for me. Here's one issue. When I build 2.6.8 for powerpc-970 (using the config file I got when I ran 'make allnoconfig' on 2.6.5; you can see it at http://kegel.com/crosstool/crosstool-0.28-rc36/powerpc64.config), I get a few link errors: arch/ppc64/kernel/built-in.o(.text+0xdc44): In function `.sys32_ipc': : undefined reference to `.compat_sys_shmctl' arch/ppc64/kernel/built-in.o(.text+0xdca0): In function `.sys32_ipc': : undefined reference to `.compat_sys_semctl' arch/ppc64/kernel/built-in.o(.text+0xdcbc): In function `.sys32_ipc': : undefined reference to `.compat_sys_msgsnd' arch/ppc64/kernel/built-in.o(.text+0xdce0): In function `.sys32_ipc': : undefined reference to `.compat_sys_msgrcv' arch/ppc64/kernel/built-in.o(.text+0xdd0c): In function `.sys32_ipc': : undefined reference to `.compat_sys_msgctl' arch/ppc64/kernel/built-in.o(.text+0xdd28): In function `.sys32_ipc': : undefined reference to `.compat_sys_shmat' arch/ppc64/kernel/built-in.o(.text+0xdd3c): In function `.sys32_ipc': : undefined reference to `.compat_sys_semtimedop' arch/ppc64/kernel/built-in.o(.text+0xe9d4): In function `.sys32_sysctl': : undefined reference to `.do_sysctl' arch/ppc64/kernel/built-in.o(.text+0x10958): In function `.routing_ioctl': : undefined reference to `.sockfd_lookup' net/built-in.o(.text+0x278): In function `.verify_compat_iovec': : undefined reference to `.move_addr_to_kernel' net/built-in.o(.text+0x724): In function `.scm_detach_fds_compat': : undefined reference to `.__scm_destroy' make: *** [.tmp_vmlinux1] Error 1 Is this user error for using an old config file, is it silliness from gcc-3.4.2, or is something else going on? Thanks, Dan -- My technical stuff: http://kegel.com My politics: see http://www.misleader.org for examples of why I'm for regime change ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.8 link failure for powerpc-970? 2004-09-20 8:24 2.6.8 link failure for powerpc-970? Dan Kegel @ 2004-09-20 8:35 ` Arjan van de Ven 2004-09-22 3:20 ` Dan Kegel 2004-09-23 0:17 ` Anton Blanchard 0 siblings, 2 replies; 9+ messages in thread From: Arjan van de Ven @ 2004-09-20 8:35 UTC (permalink / raw) To: Dan Kegel; +Cc: Linux Kernel Mailing List [-- Attachment #1: Type: text/plain, Size: 1092 bytes --] On Mon, 2004-09-20 at 10:24, Dan Kegel wrote: > I'm trying to verify that I can build toolchains and compile > and link kernels for a large set of CPU types using simple kernel config files. > I'm also somewhat foolishly trying to do all this with gcc-3.4.2. > So any problems I run into are a bit hard to pin down to > compiler, kernel, or user error, since this is mostly new territory for me. use this patch --- linux-2.6.8/arch/ppc64/Makefile~ 2004-09-03 13:02:48.372244432 +0200 +++ linux-2.6.8/arch/ppc64/Makefile 2004-09-03 13:02:48.372244432 +0200 @@ -28,5 +28,7 @@ LDFLAGS_vmlinux := -Bstatic -e $(KERNELLOAD) -Ttext $(KERNELLOAD) CFLAGS += -msoft-float -pipe -mminimal-toc -mtraceback=none + +CFLAGS += $(call cc-option,-mcall-aixdesc) ifeq ($(CONFIG_POWER4_ONLY),y) CFLAGS += $(call cc-option,-mcpu=power4) [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.8 link failure for powerpc-970? 2004-09-20 8:35 ` Arjan van de Ven @ 2004-09-22 3:20 ` Dan Kegel 2004-09-22 16:41 ` Dan Kegel 2004-09-23 0:17 ` Anton Blanchard 1 sibling, 1 reply; 9+ messages in thread From: Dan Kegel @ 2004-09-22 3:20 UTC (permalink / raw) To: arjanv; +Cc: Linux Kernel Mailing List Arjan van de Ven wrote: > On Mon, 2004-09-20 at 10:24, Dan Kegel wrote: > >>I'm trying to verify that I can build toolchains and compile >>and link kernels for a large set of CPU types using simple kernel config files. >>I'm also somewhat foolishly trying to do all this with gcc-3.4.2. >>So any problems I run into are a bit hard to pin down to >>compiler, kernel, or user error, since this is mostly new territory for me. > > > use this patch > --- linux-2.6.8/arch/ppc64/Makefile~ 2004-09-03 13:02:48.372244432 +0200 > +++ linux-2.6.8/arch/ppc64/Makefile 2004-09-03 13:02:48.372244432 +0200 > @@ -28,5 +28,7 @@ > LDFLAGS_vmlinux := -Bstatic -e $(KERNELLOAD) -Ttext $(KERNELLOAD) > CFLAGS += -msoft-float -pipe -mminimal-toc -mtraceback=none > +CFLAGS += $(call cc-option,-mcall-aixdesc) That didn't help. In fact, cc-option is undefined, so it did nothing. I tried correcting this to check_gcc: --- linux-2.6.8/arch/ppc64/Makefile.old 2004-09-20 07:04:35.000000000 -0700 +++ linux-2.6.8/arch/ppc64/Makefile 2004-09-20 07:06:38.000000000 -0700 @@ -28,6 +28,7 @@ LDFLAGS_vmlinux := -Bstatic -e $(KERNELLOAD) -Ttext $(KERNELLOAD) CFLAGS += -msoft-float -pipe -Wno-uninitialized -mminimal-toc \ -mtraceback=none +CFLAGS += $(call check_gcc,-mcall-aixdesc) This actually affected the build in that -mcall-aixdesc was used on many compiles, but the build still ended with the same errors: /opt/crosstool/powerpc64-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/bin/powerpc64-unknown-linux-gnu-ld -m elf64ppc -m elf64ppc -Bstatic -e 0xc000000000000000 -Ttext 0xc000000000000000 -T arch/ppc64/kernel/vmlinux.lds.asm arch/ppc64/kernel/head.o init/built-in.o --start-group usr/built-in.o arch/ppc64/kernel/built-in.o arch/ppc64/mm/built-in.o kernel/built-in.o mm/built-in.o fs/built-in.o ipc/built-in.o security/built-in.o crypto/built-in.o lib/lib.a arch/ppc64/lib/lib.a lib/built-in.o arch/ppc64/lib/built-in.o drivers/built-in.o sound/built-in.o net/built-in.o --end-group -o .tmp_vmlinux1 arch/ppc64/kernel/built-in.o(.text+0xdc44): In function `.sys32_ipc': : undefined reference to `.compat_sys_shmctl' arch/ppc64/kernel/built-in.o(.text+0xdca0): In function `.sys32_ipc': : undefined reference to `.compat_sys_semctl' arch/ppc64/kernel/built-in.o(.text+0xdcbc): In function `.sys32_ipc': : undefined reference to `.compat_sys_msgsnd' arch/ppc64/kernel/built-in.o(.text+0xdce0): In function `.sys32_ipc': : undefined reference to `.compat_sys_msgrcv' arch/ppc64/kernel/built-in.o(.text+0xdd0c): In function `.sys32_ipc': : undefined reference to `.compat_sys_msgctl' arch/ppc64/kernel/built-in.o(.text+0xdd28): In function `.sys32_ipc': : undefined reference to `.compat_sys_shmat' arch/ppc64/kernel/built-in.o(.text+0xdd3c): In function `.sys32_ipc': : undefined reference to `.compat_sys_semtimedop' arch/ppc64/kernel/built-in.o(.text+0xe9d4): In function `.sys32_sysctl': : undefined reference to `.do_sysctl' arch/ppc64/kernel/built-in.o(.text+0x10958): In function `.routing_ioctl': : undefined reference to `.sockfd_lookup' net/built-in.o(.text+0x278): In function `.verify_compat_iovec': : undefined reference to `.move_addr_to_kernel' net/built-in.o(.text+0x724): In function `.scm_detach_fds_compat': : undefined reference to `.__scm_destroy' make: *** [.tmp_vmlinux1] Error 1 Got another suggestion? Thanks, Dan -- My technical stuff: http://kegel.com My politics: see http://www.misleader.org for examples of why I'm for regime change ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.8 link failure for powerpc-970? 2004-09-22 3:20 ` Dan Kegel @ 2004-09-22 16:41 ` Dan Kegel 2004-09-22 22:27 ` Herbert Poetzl 0 siblings, 1 reply; 9+ messages in thread From: Dan Kegel @ 2004-09-22 16:41 UTC (permalink / raw) To: Linux Kernel Mailing List; +Cc: arjanv Dan Kegel wrote: >> On Mon, 2004-09-20 at 10:24, Dan Kegel wrote: >> >>> I'm trying to verify that I can build toolchains and compile >>> and link kernels for a large set of CPU types using simple kernel >>> config files. >>> I'm also somewhat foolishly trying to do all this with gcc-3.4.2. >>> So any problems I run into are a bit hard to pin down to >>> compiler, kernel, or user error, since this is mostly new territory >>> for me. ... > > arch/ppc64/kernel/built-in.o(.text+0xdc44): In function `.sys32_ipc': > : undefined reference to `.compat_sys_shmctl' > ... Could it be a config problem? My config file was from 'allnoconfig', I think, and has $ egrep 'SYSV|COMPAT' .config CONFIG_COMPAT=y # CONFIG_SYSVIPC is not set compat_sys_shmctl is in ipc/compat.c, and is enabled by CONFIG_SYSVIPC_COMPAT, which depends on CONFIG_SYSVIPC, which is off. The reference to compat_sys_shmctl seems to be in ./arch/ia64/ia32/sys_ia32.c ./arch/ppc64/kernel/sys_ppc32.c ./arch/x86_64/ia32/ipc32.c ./arch/s390/kernel/compat_linux.c and appears to not be conditioned on CONFIG_SYSVIPC_COMPAT. Seems like linking problems are expected unless you turn on CONFIG_SYSVIPC and CONFIG_SYSVIPC_COMPAT. I turned 'em on and am trying again. - Dan -- My technical stuff: http://kegel.com My politics: see http://www.misleader.org for examples of why I'm for regime change ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.8 link failure for powerpc-970? 2004-09-22 16:41 ` Dan Kegel @ 2004-09-22 22:27 ` Herbert Poetzl 2004-09-23 5:24 ` Dan Kegel 0 siblings, 1 reply; 9+ messages in thread From: Herbert Poetzl @ 2004-09-22 22:27 UTC (permalink / raw) To: Dan Kegel; +Cc: Linux Kernel Mailing List, arjanv On Wed, Sep 22, 2004 at 09:41:33AM -0700, Dan Kegel wrote: > Dan Kegel wrote: > >>On Mon, 2004-09-20 at 10:24, Dan Kegel wrote: > >> > >>>I'm trying to verify that I can build toolchains and compile > >>>and link kernels for a large set of CPU types using simple kernel > >>>config files. Hi Dan! once you figured out what 'default' configs are appropriate for the special archs not working with allyes/noconfig could you send me a note and/or post a link to them somewhere? TIA, Herbert > >>>I'm also somewhat foolishly trying to do all this with gcc-3.4.2. > >>>So any problems I run into are a bit hard to pin down to > >>>compiler, kernel, or user error, since this is mostly new territory > >>>for me. ... > > > >arch/ppc64/kernel/built-in.o(.text+0xdc44): In function `.sys32_ipc': > >: undefined reference to `.compat_sys_shmctl' > > ... > > Could it be a config problem? My config file was from 'allnoconfig', I > think, and has > $ egrep 'SYSV|COMPAT' .config > CONFIG_COMPAT=y > # CONFIG_SYSVIPC is not set > compat_sys_shmctl is in ipc/compat.c, and is enabled by > CONFIG_SYSVIPC_COMPAT, > which depends on CONFIG_SYSVIPC, which is off. > > The reference to compat_sys_shmctl seems to be in > ./arch/ia64/ia32/sys_ia32.c > ./arch/ppc64/kernel/sys_ppc32.c > ./arch/x86_64/ia32/ipc32.c > ./arch/s390/kernel/compat_linux.c > and appears to not be conditioned on CONFIG_SYSVIPC_COMPAT. > Seems like linking problems are expected unless you turn on > CONFIG_SYSVIPC and CONFIG_SYSVIPC_COMPAT. > > I turned 'em on and am trying again. > - Dan > > -- > My technical stuff: http://kegel.com > My politics: see http://www.misleader.org for examples of why I'm for > regime change > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.8 link failure for powerpc-970? 2004-09-22 22:27 ` Herbert Poetzl @ 2004-09-23 5:24 ` Dan Kegel 2004-09-23 13:12 ` Anton Blanchard 0 siblings, 1 reply; 9+ messages in thread From: Dan Kegel @ 2004-09-23 5:24 UTC (permalink / raw) To: Herbert Poetzl; +Cc: Linux Kernel Mailing List, arjanv Herbert Poetzl wrote: >>>arch/ppc64/kernel/built-in.o(.text+0xdc44): In function `.sys32_ipc': >>>: undefined reference to `.compat_sys_shmctl' >>>... >> >>Could it be a config problem? My config file was from 'allnoconfig', I >>think, and has >>$ egrep 'SYSV|COMPAT' .config >>CONFIG_COMPAT=y >># CONFIG_SYSVIPC is not set >>compat_sys_shmctl is in ipc/compat.c, and is enabled by >>CONFIG_SYSVIPC_COMPAT, >>which depends on CONFIG_SYSVIPC, which is off. ... >>Seems like linking problems are expected unless you turn on >>CONFIG_SYSVIPC and CONFIG_SYSVIPC_COMPAT. > > once you figured out what 'default' configs > are appropriate for the special archs not working > with allyes/noconfig could you send me a note > and/or post a link to them somewhere? Sure. For ppc64, beyond allnoconfig, I had to enable CONFIG_SYSVIPC CONFIG_SYSCTL CONFIG_NET ... um, but that didn't fix everything. Now it fails with ... make -f scripts/Makefile.build obj=arch/ppc64/boot arch/ppc64/boot/zImage gzip -f -9 < vmlinux > arch/ppc64/boot/kernel-vmlinux.gz touch arch/ppc64/boot/kernel-vmlinux.c gcc -Wp,-MD,arch/ppc64/boot/.kernel-vmlinux.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -Iinclude -fno-builtin -c -o arch/ppc64/boot/kernel-vmlinux.o arch/ppc64/boot/kernel-vmlinux.c objcopy arch/ppc64/boot/kernel-vmlinux.o --add-section=.kernel:vmlinux=arch/ppc64/boot/kernel-vmlinux.gz --set-section-flags=.kernel:vmlinux=contents,alloc,load,readonly,data gzip -f -9 < .config > arch/ppc64/boot/kernel-.config.gz touch arch/ppc64/boot/kernel-.config.c gcc -Wp,-MD,arch/ppc64/boot/.kernel-.config.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -Iinclude -fno-builtin -c -o arch/ppc64/boot/kernel-.config.o arch/ppc64/boot/kernel-.config.c objcopy arch/ppc64/boot/kernel-.config.o --add-section=.kernel:.config=arch/ppc64/boot/kernel-.config.gz --set-section-flags=.kernel:.config=contents,alloc,load,readonly,data gzip -f -9 < System.map > arch/ppc64/boot/kernel-System.map.gz touch arch/ppc64/boot/kernel-System.map.c gcc -Wp,-MD,arch/ppc64/boot/.kernel-System.map.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -Iinclude -fno-builtin -c -o arch/ppc64/boot/kernel-System.map.o arch/ppc64/boot/kernel-System.map.c objcopy arch/ppc64/boot/kernel-System.map.o --add-section=.kernel:System.map=arch/ppc64/boot/kernel-System.map.gz --set-section-flags=.kernel:System.map=contents,alloc,load,readonly,data gcc -Wp,-MD,arch/ppc64/boot/.crt0.o.d -D__ASSEMBLY__ -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -Iinclude -fno-builtin -traditional -c -o arch/ppc64/boot/crt0.o arch/ppc64/boot/crt0.S arch/ppc64/boot/crt0.S: Assembler messages: arch/ppc64/boot/crt0.S:17: Error: no such instruction: `lis 9,_start@h' ... Um, why is it using the host's gcc? I ran make with make V=1 ARCH=ppc64 CROSS_COMPILE=/opt/crosstool/powerpc64-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/bin/powerpc64-unknown-linux-gnu- so it really should know better, shouldn't it? I'm too sleepy to figure this out at the moment. Thanks for any tips ("I'm programming... while I sleep")! - Dan -- My technical stuff: http://kegel.com My politics: see http://www.misleader.org for examples of why I'm for regime change ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.8 link failure for powerpc-970? 2004-09-23 5:24 ` Dan Kegel @ 2004-09-23 13:12 ` Anton Blanchard 2004-09-23 14:14 ` Dan Kegel 0 siblings, 1 reply; 9+ messages in thread From: Anton Blanchard @ 2004-09-23 13:12 UTC (permalink / raw) To: Dan Kegel; +Cc: Herbert Poetzl, Linux Kernel Mailing List, arjanv > Sure. For ppc64, beyond allnoconfig, I had to enable > CONFIG_SYSVIPC > CONFIG_SYSCTL > CONFIG_NET > ... um, but that didn't fix everything. Now it fails with OK, I guess we need some better wrapping of compat code. > Um, why is it using the host's gcc? I ran make with > make V=1 ARCH=ppc64 > CROSS_COMPILE=/opt/crosstool/powerpc64-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/bin/powerpc64-unknown-linux-gnu- > so it really should know better, shouldn't it? Check out arch/ppc64/boot/Makefile, in particular CROSS32_COMPILE. The boot wrapper is a 32bit binary. Now that the toolchain is biarch capable we could get rid of that and use gcc -m32 instead. But for the moment specify a CROSS32_COMPILE ant things should link. Anton ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.8 link failure for powerpc-970? 2004-09-23 13:12 ` Anton Blanchard @ 2004-09-23 14:14 ` Dan Kegel 0 siblings, 0 replies; 9+ messages in thread From: Dan Kegel @ 2004-09-23 14:14 UTC (permalink / raw) To: Anton Blanchard; +Cc: Herbert Poetzl, Linux Kernel Mailing List, arjanv Anton Blanchard wrote: > > >>Sure. For ppc64, beyond allnoconfig, I had to enable >>CONFIG_SYSVIPC >>CONFIG_SYSCTL >>CONFIG_NET >>... um, but that didn't fix everything. Now it fails with > > > OK, I guess we need some better wrapping of compat code. Yeah, probably for several of the 64 bit arches. Sounds like a nice little kernel-janitor project. >>Um, why is it using the host's gcc? I ran make with >>make V=1 ARCH=ppc64 >>CROSS_COMPILE=/opt/crosstool/powerpc64-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/bin/powerpc64-unknown-linux-gnu- >>so it really should know better, shouldn't it? > > > Check out arch/ppc64/boot/Makefile, in particular CROSS32_COMPILE. The > boot wrapper is a 32bit binary. > > Now that the toolchain is biarch capable we could get rid of that and > use gcc -m32 instead. But for the moment specify a CROSS32_COMPILE ant > things should link. Aha! Got it. Thanks! - Dan -- My technical stuff: http://kegel.com My politics: see http://www.misleader.org for examples of why I'm for regime change ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.8 link failure for powerpc-970? 2004-09-20 8:35 ` Arjan van de Ven 2004-09-22 3:20 ` Dan Kegel @ 2004-09-23 0:17 ` Anton Blanchard 1 sibling, 0 replies; 9+ messages in thread From: Anton Blanchard @ 2004-09-23 0:17 UTC (permalink / raw) To: Arjan van de Ven; +Cc: Dan Kegel, Linux Kernel Mailing List, amodra Hi, > use this patch > --- linux-2.6.8/arch/ppc64/Makefile~ 2004-09-03 13:02:48.372244432 > +0200 > +++ linux-2.6.8/arch/ppc64/Makefile 2004-09-03 13:02:48.372244432 > +0200 > @@ -28,5 +28,7 @@ > LDFLAGS_vmlinux := -Bstatic -e $(KERNELLOAD) -Ttext > $(KERNELLOAD) > CFLAGS += -msoft-float -pipe -mminimal-toc -mtraceback=none > + > +CFLAGS += $(call cc-option,-mcall-aixdesc) We shouldnt need this with the two recent patches from Alan Modra (add -synthetic to nm in arch/ppc64/Makefile and add an opd section in the ppc64 vmlinux.lds). Anton ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2004-09-23 14:16 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-09-20 8:24 2.6.8 link failure for powerpc-970? Dan Kegel 2004-09-20 8:35 ` Arjan van de Ven 2004-09-22 3:20 ` Dan Kegel 2004-09-22 16:41 ` Dan Kegel 2004-09-22 22:27 ` Herbert Poetzl 2004-09-23 5:24 ` Dan Kegel 2004-09-23 13:12 ` Anton Blanchard 2004-09-23 14:14 ` Dan Kegel 2004-09-23 0:17 ` Anton Blanchard
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox