S
sticky bit
Grünschnabel
Also ich versuch mich gerade im GRUB kompilieren, Version 0.93.
Umgebungs CFLAGS waren "-O3 -march=i586 -mcpu=i586", Umgebungs LDFLAGS "-Bdynamic". Konfigureiert habe ich das ganze mit ./configure --prefix=/usr --sysconfdir=-etc --disable-hercules --disable-serial --disable-auto-linux-mem-opt. Dann make und sobald make an die Stage2 Dateien geht passiert am Ende folgendes:
(gekürzt zwecks besserer Lesbarkeit, gesamte Ausgabe des make Vorgangs im Anhang)
OK, dacht ich mit liegt vielleicht an meinen CFLAGS bzw. LDFLAGS so Stagefiles sind sicherlich was besonderes also ein make distclean; unset LDFLAGS; unset CFLAGS und der ganze Spass von vorne. Ergebnis, das selbe, selber Fehler. Hmm, also hab ich mir die Befehle mal angesehen und, na klar memcpy() kommt aus libc.a aber es ist der -nostdlib Switch gesetzt, dann linked das wohl ins Leere. Schön als wieder die make distclean und die CFLAGS angepasst, dies mal "-lc" und siehe da alles lief durch. Nur jetzt hab ich riesen Stage Files, so um die 13 MB each, bzw. Stage2 sogar fast 27 MB:
Naja, das kanns ja nicht sein, die bring ich ja nie in meinem /boot unter und das kann auch nicht stimmen, so riesen Dinger für nen Bootloader, das ist alles teansy weansy bei so nem Ding und nicht gleich im MB Bereich, auch bei GRUB sicher nicht. Naja, einen hat ich noch, wieder die CFLAGS angepasst und diesmal "-lc -Wl,-no-whole-archive", hat aber auch nichts genützt, immer noch geanuso riesig die Dinger...
Den GRUB Hint von LFS hab ich mir schon angesehen, konnte mir aber auch nicht weiterhelfen. Also vielleicht weiss ja jmd. hier mehr, wie man das hinkriegen könnte? Sonst hab ich ein System ohne Bootloader, toll...
Umgebungs CFLAGS waren "-O3 -march=i586 -mcpu=i586", Umgebungs LDFLAGS "-Bdynamic". Konfigureiert habe ich das ganze mit ./configure --prefix=/usr --sysconfdir=-etc --disable-hercules --disable-serial --disable-auto-linux-mem-opt. Dann make und sobald make an die Stage2 Dateien geht passiert am Ende folgendes:
Code:
gcc -O3 -march=i586 -mcpu=i586 -Bdynamic -o pre_stage2.exec -nostdlib -Wl,-N \
-Wl,-Ttext -Wl,8200 pre_stage2_exec-asm.o pre_stage2_exec-bios.o \
pre_stage2_exec-boot.o pre_stage2_exec-builtins.o pre_stage2_exec-char_io.o \
pre_stage2_exec-cmdline.o pre_stage2_exec-common.o pre_stage2_exec-console.o \
pre_stage2_exec-disk_io.o pre_stage2_exec-fsys_ext2fs.o \
pre_stage2_exec-fsys_fat.o pre_stage2_exec-fsys_ffs.o pre_stage2_exec-fsys_jfs.o \
pre_stage2_exec-fsys_minix.o pre_stage2_exec-fsys_reiserfs.o \
pre_stage2_exec-fsys_vstafs.o pre_stage2_exec-fsys_xfs.o \
pre_stage2_exec-gunzip.o pre_stage2_exec-hercules.o pre_stage2_exec-md5.o \
pre_stage2_exec-serial.o pre_stage2_exec-smp-imps.o pre_stage2_exec-stage2.o \
pre_stage2_exec-terminfo.o pre_stage2_exec-tparm.o
pre_stage2_exec-terminfo.o: In function `ti_set_term':
pre_stage2_exec-terminfo.o(.text+0x220): undefined reference to `memcpy'
pre_stage2_exec-terminfo.o: In function `ti_get_term':
pre_stage2_exec-terminfo.o(.text+0x23d): undefined reference to `memcpy'
collect2: ld returned 1 exit status
OK, dacht ich mit liegt vielleicht an meinen CFLAGS bzw. LDFLAGS so Stagefiles sind sicherlich was besonderes also ein make distclean; unset LDFLAGS; unset CFLAGS und der ganze Spass von vorne. Ergebnis, das selbe, selber Fehler. Hmm, also hab ich mir die Befehle mal angesehen und, na klar memcpy() kommt aus libc.a aber es ist der -nostdlib Switch gesetzt, dann linked das wohl ins Leere. Schön als wieder die make distclean und die CFLAGS angepasst, dies mal "-lc" und siehe da alles lief durch. Nur jetzt hab ich riesen Stage Files, so um die 13 MB each, bzw. Stage2 sogar fast 27 MB:
Code:
$ ls -l /usr/share/grub/i386-pc/
total 263120
-rw-r--r-- 1 root wheel 134504703 Jun 21 09:09 e2fs_stage1_5
-rw-r--r-- 1 root wheel 134504703 Jun 21 09:09 fat_stage1_5
-rw-r--r-- 1 root wheel 134504703 Jun 21 09:09 ffs_stage1_5
-rw-r--r-- 1 root wheel 134504703 Jun 21 09:09 jfs_stage1_5
-rw-r--r-- 1 root wheel 134504703 Jun 21 09:10 minix_stage1_5
-rw-r--r-- 1 root wheel 134504703 Jun 21 09:10 reiserfs_stage1_5
-rw-r--r-- 1 root wheel 134481151 Jun 21 09:10 stage1
-rw-r--r-- 1 root wheel 268959875 Jun 21 09:09 stage2
-rw-r--r-- 1 root wheel 134504703 Jun 21 09:10 vstafs_stage1_5
-rw-r--r-- 1 root wheel 134504703 Jun 21 09:10 xfs_stage1_5
Den GRUB Hint von LFS hab ich mir schon angesehen, konnte mir aber auch nicht weiterhelfen. Also vielleicht weiss ja jmd. hier mehr, wie man das hinkriegen könnte? Sonst hab ich ein System ohne Bootloader, toll...
Anhänge
Zuletzt bearbeitet: