3 #LD_SCRIPT64=$PWD/bootstrap.ld
4 LD_SCRIPT32=$PWD/bootstrap32.ld
9 echo "[bootstrap] remake..."
11 cd $SNAP_DIR/obj/l4/amd64/pkg/bootstrap
15 BOOTST_OBJ_DIR=$SNAP_DIR/obj/l4/amd64/pkg/bootstrap/server/src/OBJ-amd64_K8
17 # echo "[bootstrap] linking..."
19 # LD_PRELOAD=libgendep.so \
20 # LD_LIBRARY_PATH=$SNAP_DIR/obj/l4/amd64/tool/gendep/64:$SNAP_DIR/obj/l4/amd64/tool/gendep/32 \
21 # GENDEP_TARGET=$BUILD_DIR/bootstrap.elf \
23 # GENDEP_BINARY_ALT1=ld \
24 # ld -m elf_x86_64 -o $BUILD_DIR/bootstrap.elf \
41 # --no-whole-archive -nostdlib -static -Bstatic --eh-frame-hdr -m elf_x86_64 -z max-page-size=0x1000 -z common-page-size=0x1000 \
42 # --defsym=__executable_start=0x2d0000 -m elf_x86_64 -z max-page-size=0x1000 -z common-page-size=0x1000 \
43 # --defsym __L4_KIP_ADDR__=0x6ffff000 --defsym __L4_STACK_ADDR__=0x70000000 -L$SNAP_DIR/obj/l4/amd64/lib/amd64_K8 \
44 # -L$SNAP_DIR/obj/l4/amd64/lib \
47 # -ldrivers_uart -lcxx_base -lcxx_io -luc_c_minimal $SNAP_DIR/obj/l4/amd64/lib/amd64_K8/libgcc.a \
50 # --defsym=__executable_start=0x2d0000 \
51 # /usr/lib/gcc/x86_64-linux-gnu/4.9/crtend.o \
52 # $SNAP_DIR/obj/l4/amd64/lib/amd64_K8/crtn.o
54 # echo "[bootstrap64] Preparing binary to include.."
55 # objcopy -S $BUILD_DIR/bootstrap.elf $BUILD_DIR/bootstrap64.bin
56 # objdump -D $BUILD_DIR/bootstrap.elf > disasms/bootstrap64.elf.s
57 # chmod -x $BUILD_DIR/bootstrap64.bin
58 # objcopy -B i386 -I binary -O elf32-i386 $BUILD_DIR/bootstrap64.bin $BUILD_DIR/bootstrap32.bin
60 echo "[boot.S] Compiling the header of image.."
61 gcc -m32 -o $BUILD_DIR/boot.o32 -c \
62 -DMODADDR=0x02000000 \
66 -DPLATFORM_TYPE=\"pc\" \
75 -I$SNAP_DIR/src/l4/pkg/bootstrap/server/src \
76 -I$SNAP_DIR/src/l4/pkg/bootstrap/server/src/ARCH-amd64 \
77 -I$SNAP_DIR/obj/l4/amd64/include/amd64 \
78 -I$SNAP_DIR/obj/l4/amd64/include \
79 -isystem $SNAP_DIR/obj/l4/amd64/include/sys/amd64 \
80 -isystem $SNAP_DIR/obj/l4/amd64/include/sys -nostdinc \
81 -I$SNAP_DIR/obj/l4/amd64/include/uclibc \
82 -I$SNAP_DIR/obj/l4/amd64/include/contrib/libstdc++-v3 \
83 -isystem /usr/lib/gcc/x86_64-linux-gnu/4.9/include \
84 -isystem /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed \
85 -fno-omit-frame-pointer -mno-sse -g -Os -mno-red-zone -march=k8 -Wextra -Wall \
86 -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -fno-common -std=gnu99 \
87 -mno-red-zone -march=k8 -fno-stack-protector -mno-sse -m32 -fno-stack-protector \
90 echo "[bootstrap32] Linking final image.."
92 gcc -m32 -o $BUILD_DIR/bootstrap32.elf -nostdlib -static \
93 -Wl,-T,$LD_SCRIPT32,--gc-sections \
95 $BOOTST_OBJ_DIR/boot_idt.o32 \
96 $BOOTST_OBJ_DIR/boot_cpu.o32 \
97 $BOOTST_OBJ_DIR/boot_kernel.o32 \
98 $BOOTST_OBJ_DIR/load_elf.o32 \
99 $BOOTST_OBJ_DIR/minilibc_support.o32 \
100 $BOOTST_OBJ_DIR/bootstrap32.bin \
102 $SNAP_DIR/obj/l4/amd64/pkg/bootstrap/server/src/ARCH-amd64/libc32/OBJ-amd64_K8/libc32.a \
105 chmod 755 $BUILD_DIR/bootstrap32.elf
107 objdump -D $BUILD_DIR/bootstrap32.elf > disasms/bootstrap32.elf.s
108 objcopy -O binary $BUILD_DIR/bootstrap32.elf $BUILD_DIR/bootstrap32-jh.bin
109 cp $BUILD_DIR/bootstrap32-jh-bin ../buildroot-overlay/jailhouse/bootstrap32-jh.bin