Warum kann nicht Brennnessel 2.4 die "konfigurieren", finden die GMP-5.0.2?

Ich bin versucht zu bauen GnuTLS auf Mac OS X 10.5 (Leopard) Server (ja, ich weiß, es ist ein bisschen datiert, aber das ist, was dieser server läuft im moment) und bin mit in ein Thema Gebäude Brennnessel: ich habe gebaut & installiert GMP, aber die Brennnessel ist configure kann es nicht finden.

Ich baute & installiert GMP 5.0.2 wie folgt (die GCC-version Lösung von hier):

curl -O ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.bz2
tar xjf gmp-5.0.2.tar.bz2
pushd gmp-5.0.2
CC=gcc-4.2 CXX=g++4.2 ./configure --prefix=/usr/local
make
sudo make install
popd

Einen make check alle tests besteht und ich am Ende mit den folgenden GMP-Dateien installiert:

/usr/local/include/gmp.h
/usr/local/lib/libgmp.10.dylib
/usr/local/lib/libgmp.a
/usr/local/lib/libgmp.dylib
/usr/local/lib/libgmp.la
/usr/local/share/info/gmp.info
/usr/local/share/info/gmp.info-1
/usr/local/share/info/gmp.info-2

Jedoch, wenn ich versuche zu bauen, Brennnessel 2.4, wie folgt:

curl -O http://www.lysator.liu.se/~nisse/archive/nettle-2.4.tar.gz
tar xzf nettle-2.4.tar.gz
pushd nettle-2.4
./configure --prefix=/usr/local
make
sudo make install
popd

Es baut & erfolgreich installiert wurde, aber es nicht bauen libhogweed weil GMP fehlt. Bei einer weiteren Untersuchung habe ich gefunden, dass die folgenden Warnhinweise in der configure Ausgabe:

checking for __gmpz_getlimbn in -lgmp... no
configure: WARNING: GNU MP not found, or not 3.1 or up, see http://gmplib.org/.
Support for public key algorithms will be unavailable.
checking for __gmpz_powm_sec... no

Offensichtlich, GMP 5.0.2 ist neuer als 3.1, sowie '__gmpz_getlimbn' & '__gmpz_powm_sec' definiert sind, in /usr/local/include/gmp.h, also alles über meine GMP-Installation scheint korrekt zu sein.

Ich habe versucht, alle Arten von configure Optionen (insb. suchen für irgendeine Art von '--with-gmp " - option) ohne Erfolg. Ich habe auch versucht mit der gleichen version von GCC (CC=gcc-4.2 CXX=g++4.2 ./configure --prefix=/usr/local) wie ich zu kompilieren, GMP, keine Veränderung im Ergebnis. --includedir & --libdir sollte $PREFIX/include & $PREFIX/lib bzw. (esp. da bin ich nicht die Angabe einer --exec-prefix), so kann ich nicht herausfinden, warum es nicht in der Lage sein zu finden, GMP.

Anregungen wäre stark geschätzt.

Update:

Fand ich das folgende in config.log erklären, den Fehler zu finden, GMP:

configure:6469: checking for __gmpz_getlimbn in -lgmp
configure:6494: gcc -o conftest -g -O2   conftest.c -lgmp   >&5
ld warning: in /usr/local/lib/libgmp.dylib, file is not of required architecture
Undefined symbols:
  "___gmpz_getlimbn", referenced from:
      _main in ccNP0jza.o
ld: symbol(s) not found 
collect2: ld returned 1 exit status
configure:6494: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "nettle"  
| #define PACKAGE_TARNAME "nettle"
| #define PACKAGE_VERSION "2.4"  
| #define PACKAGE_STRING "nettle 2.4"
| #define PACKAGE_BUGREPORT "[email protected]"
| #define PACKAGE_URL ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1 
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1 
| #define HAVE_UNISTD_H 1
| #define TIME_WITH_SYS_TIME 1
| #define SIZEOF_LONG 4
| #define HAVE_OPENSSL_BLOWFISH_H 1
| #define HAVE_OPENSSL_DES_H 1
| #define HAVE_OPENSSL_CAST_H 1
| #define HAVE_OPENSSL_AES_H 1
| #define HAVE_ALLOCA_H 1
| #define HAVE_ALLOCA 1 
| #define HAVE_STRERROR 1
| #define HAVE_GCC_ATTRIBUTE 1
| #define HAVE_FCNTL_LOCKING 1
| /* end confdefs.h.  */
|
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char __gmpz_getlimbn ();
| int
| main ()
| {
| return __gmpz_getlimbn ();
|   ;
|   return 0;
| }
configure:6503: result: no
configure:6514: WARNING: GNU MP not found, or not 3.1 or up, see http://gmplib.org/.
Support for public key algorithms will be unavailable.

Läuft file /usr/local/lib/libgmp.dylib gibt die folgenden:

/usr/local/lib/libgmp.dylib: Mach-O 64-bit dynamically linked shared library x86_64

Diesem server läuft ein Intel-Core-2-Duo-Prozessor, so dass 64-bit-Mach-Bibliothek sieht korrekt zu mir. Ich weiß nicht, wie zu sagen, ob Brennnessel versucht, gebaut für 32-bit-oder 64-bit-Architektur, also versuchte ich CC=gcc-4.2 CXX=g++4.2 ABI=64 ./configure --prefix=/usr/local mit keine änderung (auch bei der Angabe ABI=32 Brennnessel ist configure sagt immer "ABI: standard"... tut es nicht passieren ABI durch?).

Würde re-kompilieren von GMP als eine statische Bibliothek einen Unterschied machen? (Nein, GMP baut sowohl static & dynamic-Bibliotheken standardmäßig. Ich zählte sowohl über-als auch bei der Anzeige aller installierten Dateien.)

InformationsquelleAutor morgant | 2011-11-01
Schreibe einen Kommentar