[Aboriginal] Build

Rob Landley rob at landley.net
Sat Mar 8 11:44:37 PST 2014


On 03/08/14 10:04, David Henderson wrote:
> Good morning Rob.  I continued to work on getting a working kernel since
> I last reached out to you.  Instead of trying to build a bootable
> version of AL (since I could never get that to work correctly), I just
> installed qemu and used the AL system image to get into a working
> development environment.  I also figured out how to use the hdb.img file
> to 'make menuconfig' in my host environment, and then to run 'make'
> while in the qemu session.  I've tried several tweaks to the kernel
> config in an attempt to get a fresh one working, but it seems like an
> effort in futility...
> 
> At this point I'm simply just trying to get a working kernel so I can
> continue to build the distro.  This is the *most* frustrating thing to
> get working!!!!  Currently the build is failing with the below message:
> 
> ...snip...
>   AR      lib/lib.a
>   CC [M]  lib/test-kstrtox.o
>   CC [M]  lib/crc-ccitt.o
>   CC [M]  lib/crc-itu-t.o
>   CC [M]  lib/crc7.o
>   CC [M]  lib/libcrc32c.o
>   CC [M]  lib/crc8.o
>   CC [M]  lib/bch.o
>   CC [M]  lib/ts_kmp.o
>   CC [M]  lib/ts_bm.o
>   CC [M]  lib/ts_fsm.o
>   CC [M]  lib/cordic.o
>   CC [M]  lib/asn1_decoder.o
>   GEN     lib/oid_registry_data.c
> /bin/sh: line 1: perl: command not found
> make[1]: *** [lib/oid_registry_data.c] Error 127
> make: *** [lib] Error 2

No idea. Let's see...

vi lib/Makefile does indeed show that file having a perl generator, and
git annotate says it's commit a77ad6ea from David Howells in 2012 adding
fast X.509 OID lookups.

My config does not enable the guard symbol for this (which is in the
diff as CONFIG_OID_REGISTRY).

So your config is trying to build stuff that my config isn't.

$ cd ~/aboriginal/aboriginal
$ more/test.sh sh4 "getconfig linux" > ~/file.txt #attached
$ cd ~/linux/linux
$ make allnoconfig ARCH=sh KCONFIG_ALLCONFIG=~/file.txt

Compare that .config with yours?

Also, you can cross compile a sh4 kernel from the host. It's something like:

PATH=/home/landley/cross-compiler-sh4/bin:$PATH make \
  CROSS_COMPILE=sh4- ARCH=sh

And then sources/targets/sh4 says the $KERNEL_PATH where the generated
image lives is arch/sh/boot/zImage under the kernel source. (It'd be
nice if every qemu target could run the elf file up top, which is always
"vmlinux", but alas the elf loader infrastructure isn't always hooked up...)

> Obviously the AL qemu session doesn't have perl.  I've tried looking up
> this problem, but there doesn't seem to be any relevant information from
> Google.  Since you have experience pulling out perl dependencies, how
> can I make this one go away?

If you grab the Linux From Scratch images, they have perl. Alas, I
haven't built linux from scratch under sh4 because of the emulator's
crappiness (64 megs ram and only one disk), but I could use the same
workarounds (make /dev/hda be ext2 with extra space, create 256 megs
swap file in /home and swapon that, wget the build control image and
loopback mount it on /mnt...) to do builds under that.

Alas, I need to fix the toybox "date" command, and possibly tweak qemu
so control-c doesn't kill the emulator...

> Thanks,
> Dave

Rob
-------------- next part --------------
CONFIG_EXPERIMENTAL=y
CONFIG_NO_HZ=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_PCI=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_SCRIPT=y
CONFIG_MAGIC_SYSRQ=y

CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_LOOP=y

CONFIG_IDE=y
CONFIG_IDE_GD=y
CONFIG_IDE_GD_ATA=y
CONFIG_BLK_DEV_IDECD=y

CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_SCSI_LOWLEVEL=y

CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y

CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_NET_PCI=y
CONFIG_8139CP=y

CONFIG_HW_RANDOM=y

CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_DEV=y

CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT23=y
CONFIG_TMPFS=y
CONFIG_MISC_FILESYSTEMS=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_DEVTMPFS=y

CONFIG_VIRTUALIZATION=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_NET=y
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_9P_FS=y
CONFIG_9P_FS_POSIX_ACL=y

# More random (inexplicable) guard symbols added in 3.2.  TODO: write
# miniconfig expander that automatically sets guard symbols when setting a
# dependent symbol.

CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_INTEL=y
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_NET_VENDOR_AMD=y
CONFIG_NET_VENDOR_NATSEMI=y
CONFIG_NET_VENDOR_8390=y

CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_PCI_QUIRKS=y
CONFIG_BLOCK=y
CONFIG_TTY=y
CONFIG_CPU_SUBTYPE_SH7751R=y
CONFIG_MMU=y
CONFIG_MEMORY_START=0x0c000000
CONFIG_VSYSCALL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_SH_FPU=y
CONFIG_SH_RTS7751R2D=y
CONFIG_RTS7751R2D_PLUS=y
CONFIG_SH_TIMER_TMU=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_STANDALONE=y
CONFIG_MISC_DEVICES=y
CONFIG_SCSI_PROC_FS=y
CONFIG_ATA=y
CONFIG_SATA_PMP=y
CONFIG_ATA_SFF=y
CONFIG_ATA_BMDMA=y
CONFIG_PATA_PLATFORM=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_DEVKMEM=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_SH_SCI=y
CONFIG_SERIAL_SH_SCI_CONSOLE=y
CONFIG_SPI=y
CONFIG_SPI_SH_SCI=y
CONFIG_MFD_SUPPORT=y
CONFIG_MFD_SM501=y
CONFIG_RTC_DRV_R9701=y
CONFIG_FILE_LOCKING=y
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_CRC_T10DIF=y



More information about the Aboriginal mailing list