Warum kann ich GLIBC unter Ubuntu 12.04 nicht kompilieren?

7

Ich versuche, den Linux From Scratch-Kernel, Version 7.1, unter Ubuntu 12.04 zu kompilieren , der in einer Virtualbox ausgeführt wird.

Ich habe einen Teil des Tutorials erfolgreich durchgearbeitet, aber wenn ich Schritt 5.7: Erstellen von Glibc-2.14.1 erreiche, wird beim Erstellen ein Fehler angezeigt.

In file included from ../sysdeps/unix/sysv/linux/syslog.c:10:0
../misc/syslog.c: In function '__vsyslog_chk':
../misc/syslog.c:144:9: warning: variable 'prioff' set but not used [-Wunused-but-
    set-variable
../misc/syslog.c:123:1: sorry, unimplemented: inlining failed in call to 'syslog':        
    function body not available.
../misc/syslog.c:155:9: sorry, unimplemented: called from here
make[2]: *** [/mnt/lfs/sources/glibc-build/misc/syslog.o] Error 1
make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.14.1/misc'
make[1]: *** [misc/subdir_lib] Error 2
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.14.1'
make: ***[all] Error 2

Nach einigem googeln sah ich einen eingereichten Fehlerbericht: http://sourceware.org/bugzilla/show_bug.cgi?id=10375 , der die gleichen Fehler aufwies, die ich sah, aber ich konnte keine Lösung finden.

Irgendwelche Tipps, wohin ich gehen soll?

Adler
quelle

Antworten:

4

Der Fehlerbericht ist ziemlich offensichtlich - siehe insbesondere die letzten beiden Beiträge.

Das Problem ist, dass (ihr) GLIBC nicht mit der FORTIFY_SOURCEOption kompatibel ist, die standardmäßig von Ubuntus gcc festgelegt wurde .

Die bessere Lösung besteht darin, die neueste Kopie aus dem Trunk zu erhalten, in dem das Problem behoben wurde. Deaktivieren (deaktivieren) Sie alternativ diese Option im Makefile oder vor dem Aufruf makemit:

export CFLAGS=-U_FORTIFY_SOURCE
ish
quelle
Ich weiß es zu schätzen, dass Sie mir klar machen, wie Sie Flags während der Verwendung von make deaktivieren können. Mein Problem schien jedoch nur Pebkac zu sein. Durch erneutes Starten des Tutorials von oben (nur 4 oder 5 Schritte) gelang es mir, dieses Problem zu lösen.
Eagle