Re: Where is sparc64-linux-ld?
On 7/09, Eric Delaunay wrote: | PS: I have had troubles compiling VORTEX (3c59x) & QLOGIC ISP support (egcs64 | segfault). I needed to disable them. I use a "special" patch around those two files: #if 0 ... #endif :)
Re: Where is sparc64-linux-ld?
On Tue, Sep 07, 1999 at 09:37:58PM +0200, Eric Delaunay wrote: > In case you would be interrested in, I attached both sparc32 & sparc64 config > files I used to build my kernels. That's great, just send me .config files, and I can compile them any time you need them. > PS: I have had troubles compiling VORTEX (3c59x) & QLOGIC ISP support (egcs64 > segfault). I needed to disable them. I can get them compiled, so I will enable them in this build. Ben
Re: Where is sparc64-linux-ld?
Ben Collins wrote: > On Mon, Sep 06, 1999 at 09:39:54PM +0200, Eric Delaunay wrote: > > Now I compiled a ultrasparc kernel but I don't have any chance to test it > > because I don't have access to a ultrasparc neither at home nor at my > > office :-(( > > Could you help me, or anybody else, doing a trial run to see if it ever > > works ? > > I can upload it somewhere to make it available to you. > > I could try it. Question, are you simply working on bootdisks? I was going to > compile > a set of 2.2.12 kernels tonight to upload for sparc/sparc64. Yes, there was no 2.2 kernels suitable for bootdisks so I tried to build them. Since I cannot check whether my 2.2.12 package works, I would rather like to base my next bootdisks on your forthcoming upload. However, before you upload them, make sure you get the following features at least: - for sparc32 : - CDROM, ISO9660, INITRD, LOOPBACK, SERIAL CONSOLE - NFSROOT, RARP+BOOTP (I don't remember if such feature still exists in 2.2.12 kernel; I took a look at the config file then saw no references to them ;-( ). - no PCI support - for sparc64 : - CDROM, ISO9660, INITRD, LOOPBACK, SERIAL CONSOLE - PCI support - no NFSROOT support (Steve D. reported back to me it slowdown the boot process). In case you would be interrested in, I attached both sparc32 & sparc64 config files I used to build my kernels. Regards. PS: I have had troubles compiling VORTEX (3c59x) & QLOGIC ISP support (egcs64 segfault). I needed to disable them. -- Eric Delaunay | "La guerre justifie l'existence des militaires. [EMAIL PROTECTED] | En les supprimant." Henri Jeanson (1900-1970) # # Automatically generated by make menuconfig: don't edit # # # Code maturity level options # CONFIG_EXPERIMENTAL=y # # Loadable module support # CONFIG_MODULES=y CONFIG_MODVERSIONS=y CONFIG_KMOD=y # # General setup # CONFIG_VT=y CONFIG_VT_CONSOLE=y # CONFIG_AP1000 is not set # CONFIG_SMP is not set # CONFIG_SUN4 is not set # CONFIG_PCI is not set # # Console drivers # CONFIG_PROM_CONSOLE=y CONFIG_FB=y CONFIG_DUMMY_CONSOLE=y CONFIG_FB_SBUS=y CONFIG_FB_CGSIX=y CONFIG_FB_BWTWO=y CONFIG_FB_CGTHREE=y CONFIG_FB_TCX=y CONFIG_FB_CGFOURTEEN=y CONFIG_FB_LEO=y # CONFIG_FB_VIRTUAL is not set # CONFIG_FBCON_ADVANCED is not set CONFIG_FBCON_MFB=y CONFIG_FBCON_CFB8=y CONFIG_FBCON_FONTWIDTH8_ONLY=y CONFIG_FONT_SUN8x16=y # CONFIG_FBCON_FONTS is not set CONFIG_SBUS=y CONFIG_SBUSCHAR=y CONFIG_SUN_MOUSE=y CONFIG_SERIAL=y CONFIG_SUN_SERIAL=y CONFIG_SERIAL_CONSOLE=y CONFIG_SUN_KEYBOARD=y CONFIG_SUN_CONSOLE=y CONFIG_SUN_AUXIO=y CONFIG_SUN_IO=y CONFIG_SUN_OPENPROMIO=m CONFIG_SUN_MOSTEK_RTC=y # CONFIG_SUN_BPP is not set # CONFIG_SUN_VIDEOPIX is not set # CONFIG_SUN_AURORA is not set # CONFIG_SPARCAUDIO is not set # CONFIG_SPARCAUDIO_AMD7930 is not set # CONFIG_SPARCAUDIO_CS4231 is not set # CONFIG_SPARCAUDIO_DBRI is not set # CONFIG_SPARCAUDIO_DUMMY is not set CONFIG_SUN_OPENPROMFS=m CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y CONFIG_BINFMT_AOUT=m CONFIG_BINFMT_ELF=y CONFIG_BINFMT_MISC=m # CONFIG_BINFMT_JAVA is not set # # Floppy, IDE, and other block devices # CONFIG_BLK_DEV_FD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_LINEAR=m CONFIG_MD_STRIPED=m CONFIG_MD_MIRRORING=m CONFIG_MD_RAID5=m CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_NBD=m # # Networking options # CONFIG_PACKET=y CONFIG_NETLINK=y CONFIG_RTNETLINK=y # CONFIG_NETLINK_DEV is not set # CONFIG_FIREWALL is not set # CONFIG_FILTER is not set CONFIG_UNIX=y CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set # CONFIG_IP_PNP is not set # CONFIG_IP_ROUTER is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_IP_MROUTE is not set # CONFIG_IP_ALIAS is not set # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y CONFIG_INET_RARP=m CONFIG_SKB_LARGE=y CONFIG_IPV6=m CONFIG_IPV6_EUI64=y CONFIG_IPV6_NO_PB=y # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_BRIDGE is not set # CONFIG_LLC is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_NET_FASTROUTE is not set # CONFIG_NET_HW_FLOWCONTROL is not set # CONFIG_CPU_IS_SLOW is not set # # QoS and/or fair queueing # # CONFIG_NET_SCHED is not set # # ISDN subsystem # # CONFIG_ISDN is not set # # SCSI support # CONFIG_SCSI=y CONFIG_BLK_DEV_SD=y CONFIG_CHR_DEV_ST=m CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=m CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y # # SCSI low-level drivers # CONFIG_SCSI_SUNESP=y CONFIG_SCSI_QLOGICPTI=m # # Fibre Channel support # CONFIG_FC4=m CONFIG_FC4_SOC=m CONFIG_FC4_SOCAL=m CONFIG_SCSI_PLUTO=m CONFIG_SCSI_FCAL=m # # Network device support # CONFIG_NETDEVICES=y CONFIG_DUMMY=m CONFIG_PPP=m CONFIG_SLIP=m CONFIG_SLIP_COMPRESSED=y CONFIG_SLIP_SMART=y # CONFIG_SLIP_MODE_SLIP6 is not set CONFIG_SUNLANCE=y CONFIG_HAPPYMEAL=y
Re: Where is sparc64-linux-ld?
On Mon, Sep 06, 1999 at 09:39:54PM +0200, Eric Delaunay wrote: > Ben Collins wrote: > > On Sun, Sep 05, 1999 at 11:38:47PM +0200, Eric Delaunay wrote: > > > Not really useful (could be ln -s /usr/sparc-linux . ?) > > > In effect, ld on sparc32 arch tries to create sparc32 binaries, not > > > sparc64 > > > ones unless "-m elf64_sparc" is provided on the command line. > > > The makefiles in linux kernel sources tree don't call ld like above but > > > just > > > sparc64-linux-ld. Therefore I have had to replace the link with a script > > > to > > > put the -m argument in front of the command line. > > > > I'm using kernel-package and the only thing I have linked is > > /usr/sparc-linux to "." > > else when supplying elf64_sparc, it can't find the linker scripts (bug in > > binutils > > IMO). The names of the bintutils that the kernel looks for for sparc64 is > > just a side > > affect of how the people doing the development had their systems setup > > (which is why > > kernel-package passes args to the make to overrride the defaults so that it > > works > > properly, except for the sparc-linux link). However on my system, even the > > standard > > kernel make adds -melf64_sparc to the linker command line. > > Which version of kernel-package are you using ? > I installed 6.23 from potato because the one from slink does not support > --subarch=sun4u very well. Potato's > About the -melf64_sparc option passed to the linker, I will check that next > time I will build a kernel. > > Now I compiled a ultrasparc kernel but I don't have any chance to test it > because I don't have access to a ultrasparc neither at home nor at my office > :-(( > Could you help me, or anybody else, doing a trial run to see if it ever works > ? > I can upload it somewhere to make it available to you. I could try it. Question, are you simply working on bootdisks? I was going to compile a set of 2.2.12 kernels tonight to upload for sparc/sparc64. Ben
Re: Where is sparc64-linux-ld?
Ben Collins wrote: > On Sun, Sep 05, 1999 at 11:38:47PM +0200, Eric Delaunay wrote: > > Not really useful (could be ln -s /usr/sparc-linux . ?) > > In effect, ld on sparc32 arch tries to create sparc32 binaries, not sparc64 > > ones unless "-m elf64_sparc" is provided on the command line. > > The makefiles in linux kernel sources tree don't call ld like above but just > > sparc64-linux-ld. Therefore I have had to replace the link with a script to > > put the -m argument in front of the command line. > > I'm using kernel-package and the only thing I have linked is /usr/sparc-linux > to "." > else when supplying elf64_sparc, it can't find the linker scripts (bug in > binutils > IMO). The names of the bintutils that the kernel looks for for sparc64 is > just a side > affect of how the people doing the development had their systems setup (which > is why > kernel-package passes args to the make to overrride the defaults so that it > works > properly, except for the sparc-linux link). However on my system, even the > standard > kernel make adds -melf64_sparc to the linker command line. Which version of kernel-package are you using ? I installed 6.23 from potato because the one from slink does not support --subarch=sun4u very well. About the -melf64_sparc option passed to the linker, I will check that next time I will build a kernel. Now I compiled a ultrasparc kernel but I don't have any chance to test it because I don't have access to a ultrasparc neither at home nor at my office :-(( Could you help me, or anybody else, doing a trial run to see if it ever works ? I can upload it somewhere to make it available to you. Regards. -- Eric Delaunay | "La guerre justifie l'existence des militaires. [EMAIL PROTECTED] | En les supprimant." Henri Jeanson (1900-1970)
Re: Where is sparc64-linux-ld?
On Sun, Sep 05, 1999 at 11:38:47PM +0200, Eric Delaunay wrote: > Not really useful (could be ln -s /usr/sparc-linux . ?) > In effect, ld on sparc32 arch tries to create sparc32 binaries, not sparc64 > ones unless "-m elf64_sparc" is provided on the command line. > The makefiles in linux kernel sources tree don't call ld like above but just > sparc64-linux-ld. Therefore I have had to replace the link with a script to > put the -m argument in front of the command line. I'm using kernel-package and the only thing I have linked is /usr/sparc-linux to "." else when supplying elf64_sparc, it can't find the linker scripts (bug in binutils IMO). The names of the bintutils that the kernel looks for for sparc64 is just a side affect of how the people doing the development had their systems setup (which is why kernel-package passes args to the make to overrride the defaults so that it works properly, except for the sparc-linux link). However on my system, even the standard kernel make adds -melf64_sparc to the linker command line. > I could say this a bug because sparc64-linux-ld should always create sparc64 > binaries, not sparc32 ones by default, unless -m elf32_sparc is provided on > the > command line. > I don't know however where to fix it: no package provide sparc64-linux-xxx > alternatives yet (good candidate could be egcs64). Once I get this gcc setup, egcs64 will soon become obsolete. Until then it should serve to build sparc64 kernels (using the sparc-linux link and kernel-package). Ben
Re: Where is sparc64-linux-ld?
Ben Collins wrote: > On Sun, Sep 05, 1999 at 05:27:03PM +0200, Eric Delaunay wrote: > > Ben Collins wrote: > > > On Fri, Aug 13, 1999 at 08:51:35PM +0200, Samuel Tardieu wrote: > > > > When recompiling a kernel with "make-kpkg --arch sparc64 ..." on an > > > > Ultra5: > > > > > > > > sparc64-linux-ld -r -o kernel.o signal.o ksyms.o sched.o dma.o fork.o > > > > exec_domain.o panic.o printk.o sys.o module.o exit.o itimer.o info.o > > > > time.o softirq.o resource.o sysctl.o acct.o capability.o kmod.o > > > > make[3]: sparc64-linux-ld: Command not found > > > > > > > > Where can I find it? > > > > > > as root: > > > ln -s ld /usr/bin/sparc64-linux-ld > > > ln -s as /usr/bin/sparc64-linux-as > > > > The next one is ar. > > The actual fix for ld is to symlink /usr/sparc-linux to . > > ln -s . /usr/sparc-linux > > This allows ld to find the correct linker scripts. Not really useful (could be ln -s /usr/sparc-linux . ?) In effect, ld on sparc32 arch tries to create sparc32 binaries, not sparc64 ones unless "-m elf64_sparc" is provided on the command line. The makefiles in linux kernel sources tree don't call ld like above but just sparc64-linux-ld. Therefore I have had to replace the link with a script to put the -m argument in front of the command line. I could say this a bug because sparc64-linux-ld should always create sparc64 binaries, not sparc32 ones by default, unless -m elf32_sparc is provided on the command line. I don't know however where to fix it: no package provide sparc64-linux-xxx alternatives yet (good candidate could be egcs64). Regards. PS: I forgot nm -> sparc64-linux-nm in the list above. -- Eric Delaunay | "La guerre justifie l'existence des militaires. [EMAIL PROTECTED] | En les supprimant." Henri Jeanson (1900-1970)
Re: Where is sparc64-linux-ld?
On Sun, Sep 05, 1999 at 05:27:03PM +0200, Eric Delaunay wrote: > Ben Collins wrote: > > On Fri, Aug 13, 1999 at 08:51:35PM +0200, Samuel Tardieu wrote: > > > When recompiling a kernel with "make-kpkg --arch sparc64 ..." on an > > > Ultra5: > > > > > > sparc64-linux-ld -r -o kernel.o signal.o ksyms.o sched.o dma.o fork.o > > > exec_domain.o panic.o printk.o sys.o module.o exit.o itimer.o info.o > > > time.o softirq.o resource.o sysctl.o acct.o capability.o kmod.o > > > make[3]: sparc64-linux-ld: Command not found > > > > > > Where can I find it? > > > > as root: > > ln -s ld /usr/bin/sparc64-linux-ld > > ln -s as /usr/bin/sparc64-linux-as > > The next one is ar. The actual fix for ld is to symlink /usr/sparc-linux to . ln -s . /usr/sparc-linux This allows ld to find the correct linker scripts.
Re: Where is sparc64-linux-ld?
Ben Collins wrote: > On Fri, Aug 13, 1999 at 08:51:35PM +0200, Samuel Tardieu wrote: > > When recompiling a kernel with "make-kpkg --arch sparc64 ..." on an > > Ultra5: > > > > sparc64-linux-ld -r -o kernel.o signal.o ksyms.o sched.o dma.o fork.o > > exec_domain.o panic.o printk.o sys.o module.o exit.o itimer.o info.o time.o > > softirq.o resource.o sysctl.o acct.o capability.o kmod.o > > make[3]: sparc64-linux-ld: Command not found > > > > Where can I find it? > > as root: > ln -s ld /usr/bin/sparc64-linux-ld > ln -s as /usr/bin/sparc64-linux-as The next one is ar. > The ld that comes with binutils will handle elf64, but for some reason, > the kernel looks for ld with the sparc64-linux- prefix. Hmm, on sparc32 arch, after I made the appropriate link, ld is giving me the following error. sparc64-linux-ld -r -o kernel.o signal.o ksyms.o sched.o dma.o fork.o exec_domain.o panic.o printk.o sys.o module.o exit.o itimer.o info.o time.o softirq.o resource.o sysctl.o acct.o capability.o kmod.o sparc64-linux-ld: warning: sparc:v9 architecture of input file `signal.o' is incompatible with sparc output sparc64-linux-ld: warning: sparc:v9 architecture of input file `ksyms.o' is incompatible with sparc output sparc64-linux-ld: warning: sparc:v9a architecture of input file `sched.o' is incompatible with sparc output ... make[3]: *** [kernel.o] Segmentation fault I have had to replace sparc64-linux-ld with this script to work: #!/bin/sh ld -m elf64_sparc -b elf64-sparc "$@" Note that I just installed egcs64 from potato on a slink machine. I didn't upgrade binutils. It could be the problem here. > NOTE: if you want to build sparc64 kernels with kernel-package, use this > format: > > make-kpkg --subarch=sun4u --arch_in_name ... But you need kernel-package from potato. Slink is still using the old style. Regards -- Eric Delaunay | "La guerre justifie l'existence des militaires. [EMAIL PROTECTED] | En les supprimant." Henri Jeanson (1900-1970)
Re: Where is sparc64-linux-ld?
On Fri, Aug 13, 1999 at 08:51:35PM +0200, Samuel Tardieu wrote: > When recompiling a kernel with "make-kpkg --arch sparc64 ..." on an > Ultra5: > > sparc64-linux-ld -r -o kernel.o signal.o ksyms.o sched.o dma.o fork.o > exec_domain.o panic.o printk.o sys.o module.o exit.o itimer.o info.o time.o > softirq.o resource.o sysctl.o acct.o capability.o kmod.o > make[3]: sparc64-linux-ld: Command not found > > Where can I find it? as root: ln -s ld /usr/bin/sparc64-linux-ld ln -s as /usr/bin/sparc64-linux-as The ld that comes with binutils will handle elf64, but for some reason, the kernel looks for ld with the sparc64-linux- prefix. NOTE: if you want to build sparc64 kernels with kernel-package, use this format: make-kpkg --subarch=sun4u --arch_in_name ... This is the way that kernel-package expects it, and the way it was intended to compile (which also includes the -sun4u extension to the package anem). Ben