error while compiling l4

l4 fangzhsh07 at gmail.com
Mon May 19 05:10:56 CEST 2008


hi all,
	several days ago Cheng suggest me use qemu to virtual a 32bit system to
compile l4,then i do.The l4 can work ,but the qemu is not very stable on
my computer,sometimes I even can't login the qemu.So I recompile l4 on
my computer again by using the latest tudos package.The error come out
again :
------------------------
          ==> "bootstrap" built
          ... Generating bootstrap32.bin
        objcopy -S bootstrap bootstrap64.bin
        chmod -x bootstrap64.bin
        objcopy -B i386 -I binary -O elf32-i386 bootstrap64.bin
        bootstrap32.bin
          ==> Linking bootstrap32
        gcc -o bootstrap32 -nostdlib -static \
        
        -Wl,-T,/home/l4/tudos/l4/pkg/bootstrap/server/src/ARCH-amd64/boot32/bootstrap32.ld,--gc-sections boot.o32 boot_idt.o32 boot_cpu.o32 boot_kernel.o32 load_elf.o32 minilibc_support.o32 bootstrap32.bin /home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a -lgcc
        /usr/bin/ld: i386 architecture of input file `boot.o32' is
        incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file `boot_idt.o32' is
        incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file `boot_cpu.o32' is
        incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file `boot_kernel.o32'
        is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file `load_elf.o32' is
        incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `minilibc_support.o32' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file `bootstrap32.bin'
        is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(__assert_fail.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(memcpy.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(memset.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(printf.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(puts.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(vprintf.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(__v_printf.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(strtol.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(strtoul.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(__lltostr.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(__ltostr.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(isspace.o)' is incompatible with i386:x86-64 output
        /usr/bin/ld: i386 architecture of input file
        `/home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(memmove.o)' is incompatible with i386:x86-64 output
        /home/l4/tudos/build/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_k8/libc32.a(__lltostr.o): In function `__lltostr':
        /home/l4/tudos/l4/pkg/bootstrap/server/src/ARCH-amd64/libc32/__lltostr.c:29: undefined reference to `__umoddi3'
        /home/l4/tudos/l4/pkg/bootstrap/server/src/ARCH-amd64/libc32/__lltostr.c:30: undefined reference to `__udivdi3'
        collect2: ld return 1
        make[5]: *** [bootstrap32] error 1
        make[5]: Leaving directory
        `/home/l4/tudos/build/pkg/bootstrap/server/src/OBJ-amd64_k8'
        make[4]: ***
        [/home/l4/tudos/build/pkg/bootstrap/server/src/OBJ-amd64_k8]
        error 2
        make[4]: Leaving directory
        `/home/l4/tudos/l4/pkg/bootstrap/server/src'
        make[3]: *** [src] error 2
        make[3]: Leaving directory
        `/home/l4/tudos/l4/pkg/bootstrap/server'
        make[2]: *** [server] error 2
        make[2]: Leaving directory `/home/l4/tudos/l4/pkg/bootstrap'
        make[1]: *** [bootstrap.bin] error 2
        make[1]: Leaving directory `/home/l4/tudos/l4/pkg'
        make: *** [pkg] error 2
------------------------
my cpu information is :
------------------------
        l4 at fwnc:~$ cat /proc/cpuinfo 
        processor	: 0
        vendor_id	: AuthenticAMD
        cpu family	: 15
        model		: 107
        model name	: AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
        stepping	: 2
        cpu MHz		: 2200.104
        cache size	: 512 KB
        physical id	: 0
        siblings	: 2
        core id		: 0
        cpu cores	: 2
        fpu		: yes
        fpu_exception	: yes
        cpuid level	: 1
        wp		: yes
        flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
        mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx
        mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16
        lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
        bogomips	: 4403.55
        TLB size	: 1024 4K pages
        clflush size	: 64
        cache_alignment	: 64
        address sizes	: 40 bits physical, 48 bits virtual
        power management: ts fid vid ttp tm stc 100mhzsteps
-----------------------
I also check the fiasco and l4 as the AMD64 need,please see the
attachments for detail .is there any problem with my lib?I google that
someone suggest that:
*****************************
        You can install the ia32-libs, libc6-dev-i386, etc packages to
        get the 32bit libs on your 64bit install.
        Alternatively, setting up a development chroot is pretty easy,
        and not such a bad idea. pbuilder makes this quite easy. Install
        the pbuilder  package, then run
        Code:
        sudo pbuilder create --distribution edgy --debootstrapopts arch --debootstrapopts i386
        You can then login to your chroot with sudo pbuilder login. This
        won't save any changes you make in the chroot (you need to pass
        --save-after-login to do that), though, since it's designed for
        building debian packages.
******************************
Could you please give me some advice ?
thank you very much!
-------------- next part --------------
#
# Automatically generated make config: don't edit
# Fiasco kernel version: SVN
# Mon May 19 10:05:46 2008
#

#
# Target configuration
#
# CONFIG_IA32 is not set
CONFIG_AMD64=y
# CONFIG_ARM is not set
CONFIG_PF_PC=y
# CONFIG_PF_UX is not set
# CONFIG_PF_REALVIEW is not set
# CONFIG_PF_INTEGRATOR is not set
# CONFIG_PF_XSCALE is not set
# CONFIG_PF_SA1100 is not set
CONFIG_ABI_V2=y
# CONFIG_ARM_PXA is not set
# CONFIG_ARM_SA is not set
# CONFIG_ARM_920T is not set
# CONFIG_ARM_926 is not set
# CONFIG_ARM_1176 is not set
# CONFIG_ARM_MPCORE is not set
# CONFIG_IA32_486 is not set
# CONFIG_IA32_586 is not set
# CONFIG_IA32_686 is not set
# CONFIG_IA32_P2 is not set
# CONFIG_IA32_P3 is not set
# CONFIG_IA32_P4 is not set
# CONFIG_IA32_PM is not set
# CONFIG_IA32_K6 is not set
# CONFIG_IA32_K7 is not set
# CONFIG_IA32_K8 is not set
CONFIG_AMD64_K8=y
CONFIG_SCHED_PIT=y
# CONFIG_SCHED_RTC is not set
# CONFIG_SCHED_APIC is not set
CONFIG_WORKAROUND_AMD_FPU_LEAK=y

#
# Kernel options
#
# CONFIG_PL0_HACK is not set
# CONFIG_TASK_CAPS is not set
CONFIG_ASSEMBLER_IPC_SHORTCUT=y
CONFIG_CONTEXT_4K=y
# CONFIG_IO_PROT is not set

#
# Debugging
#
CONFIG_INLINE=y
# CONFIG_NDEBUG is not set
CONFIG_NO_FRAME_PTR=y
# CONFIG_STACK_DEPTH is not set
# CONFIG_LIST_ALLOC_SANITY is not set
# CONFIG_BEFORE_IRET_SANITY is not set
CONFIG_SERIAL=y
CONFIG_JDB=y
# CONFIG_JDB_MISC is not set
CONFIG_POWERSAVE_GETCHAR=y
# CONFIG_WARN_NONE is not set
CONFIG_WARN_WARNING=y
# CONFIG_WARN_ANY is not set

#
# Compiling
#
CONFIG_CC="gcc"
CONFIG_CXX="g++"
CONFIG_HOST_CC="gcc"
CONFIG_HOST_CXX="g++"
# CONFIG_VERBOSE is not set
# CONFIG_MAINTAINER_MODE is not set
CONFIG_LABEL=""
CONFIG_EXPERIMENTAL=y
CONFIG_PERF_CNT=y
CONFIG_BIT64=y
CONFIG_WARN_LEVEL=1
CONFIG_XARCH="amd64"
CONFIG_IA32_TARGET="AMD Opteron"
CONFIG_ABI="v2"
CONFIG_DECEIT_BIT_DISABLES_SWITCH=y


More information about the l4-hackers mailing list