mardi 13 septembre 2011

AIX compil gd : perseverare diabolicum

gd requires aclocal requires pkg-config requires pkg-config requires pkg-config or glib

cd pkg-config-0.26
./configure [...]
checking for pkg-config... no
"funny" circular dependencies
http://comments.gmane.org/gmane.comp.package-management.pkg-config/620

compile
http://ftp.gnome.org/pub/gnome/sources/glib/2.28/

but
http://chrysalis.rutgers.edu/notes/AIX5L

*** In gio/libasyncns/g-asyncns.h, need to comment out the 
  #include  line or else you get
  CC     asyncns.lo
In file included from g-asyncns.h:31,
                 from asyncns.c:22:
/usr/include/arpa/nameser_compat.h:210: error: expected specifier-qualifier-list before 'u_short'

*** Get lots of errors in gio/gfile.c like this:
  CC     gfile.lo
gfile.c:2739: error: expected declaration specifiers or '...' before 'loff_t'
gfile.c:2741: error: expected declaration specifiers or '...' before 'loff_t'
gfile.c: In function 'do_splice':..........................

*** due to HAVE_SPLICE being incorrectly defined by autoconf
*** configure improperly detects a splice() routine when there is none.  To
*** remedy, edit gio/gfile.c and manually remove all the stuff between #ifdef
*** HAVE_SPLICE blocks
.. or add #undef HAVE_SPLICE



*** glib incorrectly assumes that you're using GNU gettext and contains msgctxt,
*** which is not supported in AIX 5L.  This error pops up:
  CCLD   gdbus-example-unix-fd-client
        /usr/bin/msgfmt -o test.mo ./de.po;  /opt/freeware/bin/mkdir -p de/LC_MESSAGES;  cp -f test.mo de/LC_MESSAGES
./de.po:15: keyword "msgctxt" unknown
found 1 fatal error
*** to remedy, simply comment all the msgctxt lines out in gio/tests/de.po

export GLIB_LIBS=$GSCRIPT_SYS/lib/libglib-2.0.a
CPPFLAGS="-I$GSCRIPT_SYS/include -I$GSCRIPT_SYS/include/glib-2.0 -I$GSCRIPT_SYS/lib/glib-2.0/include/"
./configure -C --prefix=/appli/oracle/system/exe GLIB_LIBS=$GLIB_LIBS
then GD
ld: 0711-317 ERROR: Undefined symbol: .pthread_sigmask etc
Only AIX 4.3 supports POSIX threads fully. You should compile without thread support
reedit config.h after configure and change define HAVE_PTHREAD to undef HAVE_PTHREAD
cp -p config.h a; sed -e 's/define HAVE_PTHREAD 1/undef HAVE_PTHREAD/' a > config.h
PHP,

premier arrêt : 

checking for bindtextdomain in -lintl... no
checking for bindtextdomain in -lc... no
ça devrait être dans libintl, mais :
ld: 0711-317 ERROR: Undefined symbol: .pthread_rwlock_rdlock
ld: 0711-317 ERROR: Undefined symbol: .pthread_rwlock_unlock
ld: 0711-317 ERROR: Undefined symbol: .libiconv_set_relocation_prefix
ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_destroy
ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_unlock
ld: 0711-317 ERROR: Undefined symbol: .pthread_mutexattr_init
ld: 0711-317 ERROR: Undefined symbol: .pthread_mutexattr_settype
ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_init
ld: 0711-317 ERROR: Undefined symbol: .pthread_mutexattr_destroy
ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_lock
ld: 0711-317 ERROR: Undefined symbol: .pthread_rwlock_init
ld: 0711-317 ERROR: Undefined symbol: .pthread_rwlock_wrlock
ld: 0711-317 ERROR: Undefined symbol: .libiconv
ld: 0711-317 ERROR: Undefined symbol: .libiconv_open

(je garde aussi -lstdc++ )
export LDFLAGS="$LDFLAGS -liconv -lpthreads"


deuxième arrêt : 

checking for mcrypt support... yes
checking for libmcrypt version... >= 2.5.6
checking for mcrypt_module_open in -lmcrypt... no
checking for mcrypt_module_open in -lmcrypt... no
configure: error: Sorry, I was not able to diagnose which libmcrypt version you have installed.
ah ok, dans mon libmcrypt il faut remplacer rpl_malloc comme d'hab
cd libltdl ; rm configure ; autoconf ; 
configure blablabla --enable-ltdl-install ; 
sed -e 's/#define malloc rpl_malloc//' 
 -e 's/#define realloc rpl_realloc//' 
 config.h > a ; mv a config.h ; 
make ; make install ;
cd .. ; 
configure blablabla --enable-dynamic-loading  --enable-shared; 
sed -e 's/#define malloc rpl_malloc//' 
 -e 's/#define realloc rpl_realloc//' 
 config.h > a ; mv a config.h ; 
make ; make install ;

AH, dernier détail qui tue, c'est pas LD_LIBRARY_PATH ni LD_RUN_PATH qui est utilisé pour trouver les librairies, c'est LIBPATH. c'est énervant, hein.






Aucun commentaire: