2016-07-17 25 views
1

Ich versuche, die neueste Version (2.23) von glibc auf einer älteren Version von Linux zu erstellen. Dafür habe ich die neuesten Versionen von gcc und binutils neu erstellt.Fehler beim Erstellen von glibc2.23

~/software/include >uname -a 
Linux 2.6.32-573.3.1.el6.x86_64 #1 SMP Mon Aug 10 09:44:54 EDT 2015 x86_64 
x86_64 x86_64 GNU/Linux 

~/software/include >gcc --version 
gcc (GCC) 5.3.0 

~/software/include >make --version 
GNU Make 3.81 

~/software/include >ld --version 
GNU ld (GNU Binutils) 2.26.20160125 

I glibc dann wie folgt konfiguriert:

~/software/tmp/glibc-build >../glibc-2.23/configure --prefix=$HOME/software --enable-add-ons=linuxthreads 

jedoch nicht nachkommt mit den folgenden (und mehr) Fehler. Irgendwelche Vorschläge würden geschätzt werden.

~/software/tmp/glibc-build >make 

... 
... 

    ./../include/libc-symbols.h:24:21: note: in expansion of macro ‘IN_MODULE’ 
#define IS_IN(lib) (IN_MODULE == MODULE_##lib) 
        ^
./../include/libc-symbols.h:651:5: note: in expansion of macro ‘IS_IN’ 
#if IS_IN (libnss_nisplus) 
    ^
/users/PAS0272/osu5388/software/tmp/glibc-build/libc-modules.h:15:16: error: token "." is not valid in preprocessor expressions 
#define MODULE_.*-.*-linux.* 19 
       ^
./../include/libc-symbols.h:32:30: note: in definition of macro ‘PASTE_NAME1’ 
#define PASTE_NAME1(a,b)  a##b 
          ^
./../include/libc-symbols.h:23:19: note: in expansion of macro ‘PASTE_NAME’ 
#define IN_MODULE PASTE_NAME (MODULE_, MODULE_NAME) 
       ^
./../include/libc-symbols.h:23:31: note: in expansion of macro ‘MODULE_’ 
#define IN_MODULE PASTE_NAME (MODULE_, MODULE_NAME) 
          ^
./../include/libc-symbols.h:24:21: note: in expansion of macro ‘IN_MODULE’ 
#define IS_IN(lib) (IN_MODULE == MODULE_##lib) 
        ^
./../include/libc-symbols.h:680:5: note: in expansion of macro ‘IS_IN’ 
#if IS_IN (libutil) 
    ^
/users/PAS0272/osu5388/software/tmp/glibc-build/libc-modules.h:15:16: error: token "." is not valid in preprocessor expressions 
#define MODULE_.*-.*-linux.* 19 
       ^
./../include/libc-symbols.h:32:30: note: in definition of macro ‘PASTE_NAME1’ 
#define PASTE_NAME1(a,b)  a##b 
          ^
./../include/libc-symbols.h:23:19: note: in expansion of macro ‘PASTE_NAME’ 
#define IN_MODULE PASTE_NAME (MODULE_, MODULE_NAME) 
       ^
./../include/libc-symbols.h:23:31: note: in expansion of macro ‘MODULE_’ 
#define IN_MODULE PASTE_NAME (MODULE_, MODULE_NAME) 
          ^
./../include/libc-symbols.h:24:21: note: in expansion of macro ‘IN_MODULE’ 
#define IS_IN(lib) (IN_MODULE == MODULE_##lib) 
        ^
../sysdeps/generic/symbol-hacks.h:3:31: note: in expansion of macro ‘IS_IN’ 
#if !defined __ASSEMBLER__ && IS_IN (libc) && defined SHARED 
          ^
In file included from ../signal/signal.h:361:0, 
       from ../include/signal.h:5, 
       from <stdin>:2: 
../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h:52:3: error: conflicting types for ‘pthread_attr_t’ 
} pthread_attr_t; 
^
In file included from ../signal/signal.h:80:0, 
       from ../include/signal.h:5, 
       from <stdin>:2: 
../sysdeps/unix/sysv/linux/x86/bits/siginfo.h:316:30: note: previous declaration of ‘pthread_attr_t’ was here 
typedef union pthread_attr_t pthread_attr_t; 
          ^
In file included from <command-line>:0:0: 
/users/PAS0272/osu5388/software/tmp/glibc-build/libc-modules.h:15:16: error: token "." is not valid in preprocessor expressions 
#define MODULE_.*-.*-linux.* 19 
       ^
./../include/libc-symbols.h:32:30: note: in definition of macro ‘PASTE_NAME1’ 
#define PASTE_NAME1(a,b)  a##b 
          ^
./../include/libc-symbols.h:23:19: note: in expansion of macro ‘PASTE_NAME’ 
#define IN_MODULE PASTE_NAME (MODULE_, MODULE_NAME) 
       ^
./../include/libc-symbols.h:23:31: note: in expansion of macro ‘MODULE_’ 
#define IN_MODULE PASTE_NAME (MODULE_, MODULE_NAME) 
          ^
./../include/libc-symbols.h:24:21: note: in expansion of macro ‘IN_MODULE’ 
#define IS_IN(lib) (IN_MODULE == MODULE_##lib) 
        ^
../include/signal.h:65:7: note: in expansion of macro ‘IS_IN’ 
# if IS_IN (rtld) 
    ^
cc1: all warnings being treated as errors 
make[2]: *** [/users/PAS0272/osu5388/software/tmp/glibc-build/ucontext_i.h] Error 1 
make[2]: Leaving directory `/users/PAS0272/osu5388/software/tmp/glibc-2.23/csu' 
make[1]: *** [csu/subdir_lib] Error 2 
make[1]: Leaving directory `/users/PAS0272/osu5388/software/tmp/glibc-2.23' 
make: *** [all] Error 2 

Antwort

0

Ich entdeckte eine Lösung.

Früher hatte ich die linuxthreads Tarball aus dem glibcdownload page in die glibc-2.23/ Quellverzeichnis extrahiert und versuchte make mit --enable-add-ons=linuxthreads angegeben während der Konfiguration ausgeführt werden.

Durch Entfernen dieses Schritts kann die make von glibc ohne Fehler abgeschlossen werden.

jedoch die neue die Frage ist nun, wie soll ich glibc mit linuxthreads Unterstützung bauen

Verwandte Themen