Hi L4 hackers,
$ svn info Path: . Working Copy Root Path: /data/project/l4re URL: https://svn.l4re.org/repos/oc/l4re/trunk Relative URL: ^/trunk Repository Root: https://svn.l4re.org/repos/oc/l4re Repository UUID: d050ee49-bd90-4346-b210-929a50b99cfc Revision: 75 Node Kind: directory Schedule: normal Last Changed Author: l4check Last Changed Rev: 75 Last Changed Date: 2017-10-15 19:49:39 +0800 (Sun, 15 Oct 2017)
My Fiasco build config:
# # Automatically generated file; DO NOT EDIT. # Fiasco configuration # CONFIG_HAS_FPU_OPTION=y CONFIG_HAS_SERIAL_OPTION=y CONFIG_HAS_JDB_GZIP_OPTION=y
# # Target configuration # # CONFIG_IA32 is not set # CONFIG_AMD64 is not set CONFIG_ARM=y # CONFIG_MIPS is not set CONFIG_PF_INTEGRATOR=y # CONFIG_PF_REALVIEW is not set # CONFIG_PF_SUNXI is not set # CONFIG_PF_BCM283X is not set # CONFIG_PF_SA1100 is not set # CONFIG_PF_XSCALE is not set # CONFIG_PF_ARMADA38X is not set # CONFIG_PF_KIRKWOOD is not set # CONFIG_PF_TEGRA is not set # CONFIG_PF_LAYERSCAPE is not set # CONFIG_PF_IMX is not set # CONFIG_PF_RCAR3 is not set # CONFIG_PF_EXYNOS is not set # CONFIG_PF_S3C2410 is not set # CONFIG_PF_OMAP is not set # CONFIG_PF_ZYNQ is not set CONFIG_BSP_NAME="integrator" CONFIG_CAN_ARM_CPU_926=y CONFIG_CAN_ARM_CPU_1176=y CONFIG_ABI_VF=y CONFIG_ARM_926=y # CONFIG_ARM_1176 is not set CONFIG_FPU=y CONFIG_ARM_ALIGNMENT_CHECK=y CONFIG_ARM_EM_STD=y CONFIG_ARM_CPU_ERRATA=y
# # Kernel options # # CONFIG_CONTEXT_8K is not set CONFIG_CONTEXT_4K=y CONFIG_FINE_GRAINED_CPUTIME=y CONFIG_SCHED_FIXED_PRIO=y # CONFIG_SCHED_WFQ is not set # CONFIG_SCHED_FP_WFQ is not set
# # Debugging # CONFIG_INLINE=y # CONFIG_NDEBUG is not set # CONFIG_NO_FRAME_PTR is not set CONFIG_STACK_DEPTH=y CONFIG_LIST_ALLOC_SANITY=y CONFIG_SERIAL=y CONFIG_JDB=y CONFIG_JDB_LOGGING=y CONFIG_JDB_GZIP=y # CONFIG_JDB_ACCOUNTING is not set # CONFIG_WARN_NONE is not set # CONFIG_WARN_WARNING is not set CONFIG_WARN_ANY=y
# # ARM debugging options # CONFIG_VMEM_ALLOC_TEST=y CONFIG_DEBUG_KERNEL_PAGE_FAULTS=y
# # Compiling # CONFIG_CC="gcc" CONFIG_CXX="g++" CONFIG_HOST_CC="gcc" CONFIG_HOST_CXX="g++" CONFIG_MAINTAINER_MODE=y CONFIG_LABEL="" CONFIG_EXPERIMENTAL=y CONFIG_PERF_CNT=y CONFIG_BIT32=y CONFIG_WARN_LEVEL=2 CONFIG_XARCH="arm" CONFIG_ABI="vf"
My L4Re build config:
# Automatically generated. Don't edit
BID_COMPILER_TYPE=gcc BUILD_SYSTEMS=arm_armv5te arm_armv5te-l4f CONFIG_ARCH_ENABLE_STACK_PROTECTOR=y CONFIG_BID_GCC_ENABLE_STACK_PROTECTOR=y CONFIG_BID_GCC_STACK_PROTECTOR=y CONFIG_BUILD_ABI="l4f" CONFIG_BUILD_ABI_l4f=y CONFIG_BUILD_ARCH="arm" CONFIG_BUILD_ARCH_arm=y CONFIG_CPU_ARM_ARMV5TE=y CONFIG_CPU="armv5te" CONFIG_CTAGS="ctags" CONFIG_DROPS_INSTDIR="/path/to/l4re" CONFIG_DROPS_STDDIR="/path/to/l4re" CONFIG_ETAGS="etags" CONFIG_LEX="flex" CONFIG_MAKECONFS_ADD="" CONFIG_YACC="yacc" GCCDIR=/usr/lib/gcc/arm-linux-gnueabi/6.1.1 GCCFORTRANAVAIL= GCC_HAS_ATOMICS= GCCINCFIXEDPATH=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/include-fixed GCCLIB_EH=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/libgcc_eh.a GCCLIB_FILE_crtbegin.o=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/crtbegin.o GCCLIB_FILE_crtbeginS.o=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/crtbeginS.o GCCLIB_FILE_crtbeginT.o=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/crtbeginT.o GCCLIB_FILE_crtend.o=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/crtend.o GCCLIB_FILE_crtendS.o=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/crtendS.o GCCLIB_HOST=/usr/lib/gcc/arm-linux-gnueabi/6.1.1/libgcc.a GCCLIB_S_SO= GCCMAJORVERSION=6 GCCMINORVERSION=1 GCCNOSTACKPROTOPT=-fno-stack-protector GCCPATCHLEVEL=1 GCCSTACKPROTALLOPT=-fstack-protector-all GCCSTACKPROTOPT=-fstack-protector GCCSYSLIBDIRS=-L/usr/lib/gcc/arm-linux-gnueabi/6.1.1/ -L/usr/lib/gcc/arm-linux-gnueabi/6.1.1/../../../../arm-linux-gnueabi/lib/arm-linux-gnueabi/6.1.1/ -L/usr/lib/gcc/arm-linux-gnueabi/6.1.1/../../../../arm-linux-gnueabi/lib/ -L/usr/arm-linux-gnu/sys-root/lib/arm-linux-gnueabi/6.1.1/ -L/usr/arm-linux-gnu/sys-root/lib/ -L/usr/arm-linux-gnu/sys-root/usr/lib/arm-linux-gnueabi/6.1.1/ -L/usr/arm-linux-gnu/sys-root/usr/lib/ GCCVERSION=6 HOST_SYSTEM=linux INT_CPP_NAME=cc1 INT_CXX_NAME=cc1plus INT_LD_NAME=arm-linux-gnu-ld LD_EMULATION=armelf_linux_eabi LD_GENDEP_PREFIX=LD_PRELOAD=libgendep.so LD_LIBRARY_PATH=/data/project/xiangzhai/l4re/l4/build-arm/tool/gendep/64:/data/project/xiangzhai/l4re/l4/build-arm/tool/gendep/32 LD_HAS_HASH_STYLE_OPTION=n LDVERSION=227-3 include /data/project/xiangzhai/l4re/l4/build-arm/.config.indep include /data/project/xiangzhai/l4re/l4/build-arm/.config.platform
Booting L4Re with qemu-system-arm:
$ make qemu CROSS_COMPILE=arm-linux-gnu- E=hello MODULE_SEARCH_PATH=/data/project/xiangzhai/l4re/kernel/fiasco/build-arm make[1]: Entering directory '/data/project/xiangzhai/l4re/l4' Image size(s) in bytes: bootstrap_hello.elf: 1279488 Start address: 0x1000000 --> Build-Nr: 6 QEMU-cmd: qemu-system-arm -kernel /data/project/xiangzhai/l4re/l4/build-arm/images/bootstrap.elf -serial stdio -M integratorcp -m 256
L4 Bootstrapper Build: #6 Tue Oct 31 15:50:55 CST 2017, 6.1.1 20160621 (Red Hat Cross 6.1.1-2) Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (00000000 - 0fffffff) RAM: 0000000000000000 - 000000000fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 5 modules behind 1100000 moving module 02 { 10e7000-11284af } -> { 11d8000-12194af } [267440] moving module 01 { 10d5000-10e6343 } -> { 11c6000-11d7343 } [70468] moving module 00 { 1053000-10d4edb } -> { 1144000-11c5edb } [532188] moving module 04 { 1031000-1052697 } -> { 1122000-1143697 } [136856] moving module 03 { 100f000-1030473 } -> { 1100000-1121473 } [136308] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 2000 Regions of list 'regions' [ 1000, 193f] { 940} Kern fiasco [ 2000, 8efff] { 8d000} Kern fiasco [ 8f000, 8f0eb] { ec} Root mbi_rt [ e0000, eb16b] { b16c} Sigma0 sigma0 [ f0000, f517b] { 517c} Sigma0 sigma0 [ 140000, 1711df] { 311e0} Root moe [ 180000, 18c4eb] { c4ec} Root moe [ 1000000, 100e4f7] { e4f8} Boot bootstrap [ 1100000, 1143fff] { 44000} Root Module found kernel options (via ELF) at 3000 Sigma0 config ip:000e0100 sp:00000000 Roottask config ip:00140254 sp:00000000 Starting kernel fiasco at 00001118 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 1, Part: 10, Rev: 0, Var: 9, Impl: 41
KERNEL: Warning: Buddy::alloc: Size mismatch: 1c000 v 20000 SERIAL ESC: allocated IRQ 1 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: 362fdae-dirty compiled with gcc 6.1.1 20160621 (Red Hat Cross 6.1.1-2) for Integrator [] Build: #2 Tue Oct 31 15:39:15 CST 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 EXCEPTION: (00) Why undef insn? pfa=00002000, error=00000000 psr=20000110 R[0]: 00002000 00000000 00000000 000e01d0 000f0004 00002000 000f0030 00000000 R[8]: 00000000 00000000 00000000 000f281c 000f2808 00000000 00000000 000e01d4
KERNEL: Warning: Sigma0 raised an exception --> HALT Panic: ... --------------------------------------------------------------------- CPU 0 [f001519c]: abort jdb:
Then how to use addr2line to find the root cause? please give me some hint, thanks a lot!
$ arm-linux-gnu-addr2line -p -i -e bin/arm_armv5te/bootstrap.elf -a 00002000
Because 0001-Fix-invalid-initialization-in-new.patch has been already merged into svn trunk, so this http://os.inf.tu-dresden.de/pipermail/l4-hackers/2017/008111.html might not fix my issue, but as Sarah mentioned "looks like a compiler issue"?
$ arm-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=arm-linux-gnu-gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/arm-linux-gnueabi/6.1.1/lto-wrapper Target: arm-linux-gnueabi Configured with: ../gcc-6.1.1-20160621/configure --bindir=/usr/bin --build=x86_64-redhat-linux-gnu --datadir=/usr/share --disable-decimal-float --disable-dependency-tracking --disable-gold --disable-libgcj --disable-libgomp --disable-libmpx --disable-libquadmath --disable-libssp --disable-libunwind-exceptions --disable-shared --disable-silent-rules --disable-sjlj-exceptions --disable-threads --with-ld=/usr/bin/arm-linux-gnu-ld --enable-__cxa_atexit --enable-checking=release --enable-gnu-unique-object --enable-initfini-array --enable-languages=c,c++ --enable-linker-build-id --enable-lto --enable-nls --enable-obsolete --enable-plugin --enable-targets=all --exec-prefix=/usr --host=x86_64-redhat-linux-gnu --includedir=/usr/include --infodir=/usr/share/info --libexecdir=/usr/libexec --localstatedir=/var --mandir=/usr/share/man --prefix=/usr --program-prefix=arm-linux-gnu- --sbindir=/usr/sbin --sharedstatedir=/var/lib --sysconfdir=/etc --target=arm-linux-gnueabi --with-bugurl=http://bugzilla.redhat.com/bugzilla/ --with-isl --with-newlib --with-plugin-ld=/usr/bin/arm-linux-gnu-ld --with-sysroot=/usr/arm-linux-gnu/sys-root --with-system-libunwind --with-system-zlib --without-headers --with-tune=cortex-a8 --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --with-abi=aapcs-linux --enable-gnu-indirect-function --with-linker-hash-style=gnu Thread model: single gcc version 6.1.1 20160621 (Red Hat Cross 6.1.1-2) (GCC)