Hi, The --with-libxyz-prefix option did not actually work on OpenBSD. This patch should fix it.
2006-12-24 Bruno Haible <[EMAIL PROTECTED]> Improve support for OpenBSD. * build-aux/config.rpath (libname_spec): Export. (library_names_spec): New variable. Export. * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Extract libname_spec and library_names_spec from the config.rpath output. Locate shared library through the name pattern in library_names_spec. diff -r -c3 --exclude='*.po*' --exclude='*.info*' --exclude='*_*.html' --exclude='*.*.html' --exclude='*.[13]' --exclude='*.1.in' --exclude=Makefile.in --exclude=aclocal.m4 --exclude=configure --exclude=config.h.in --exclude=version.texi --exclude=stamp-vti --exclude='po-*-gen*.[ch]' --exclude='*.o' --exclude='*.lo' --exclude='*.gmo' --exclude=ABOUT-NLS --exclude=gnulib-lib --exclude=gnulib-m4 --exclude=Makefile.gnulib --exclude='javadoc[12]' --exclude=CVS gettext-cvs/autoconf-lib-link/config.rpath gettext-6/autoconf-lib-link/config.rpath *** build-aux/config.rpath Wed May 17 00:38:10 2006 --- build-aux/config.rpath Sun Dec 24 19:04:18 2006 *************** *** 488,520 **** --- 488,541 ---- # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. + # Unlike libtool.m4, here we don't care about _all_ names of the library, but + # only about the one the linker finds when passed -lNAME. This is the last + # element of library_names_spec in libtool.m4, or possibly two of them if the + # linker has special search rules. + library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) + library_names_spec='$libname.a' ;; aix4* | aix5*) + library_names_spec='$libname$shrext' ;; amigaos*) + library_names_spec='$libname.a' ;; beos*) + library_names_spec='$libname$shrext' ;; bsdi[45]*) + library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32*) shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib + library_names_spec='$libname$shrext' ;; dgux*) + library_names_spec='$libname$shrext' ;; freebsd1*) ;; kfreebsd*-gnu) + library_names_spec='$libname$shrext' ;; freebsd* | dragonfly*) + case "$host_os" in + freebsd[123]*) + library_names_spec='$libname$shrext$versuffix' ;; + *) + library_names_spec='$libname$shrext' ;; + esac ;; gnu*) + library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in *************** *** 528,537 **** --- 549,561 ---- shrext=.sl ;; esac + library_names_spec='$libname$shrext' ;; interix3*) + library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= *************** *** 549,588 **** --- 573,628 ---- linux*oldld* | linux*aout* | linux*coff*) ;; linux*) + library_names_spec='$libname$shrext' ;; knetbsd*-gnu) + library_names_spec='$libname$shrext' ;; netbsd*) + library_names_spec='$libname$shrext' ;; newsos6) + library_names_spec='$libname$shrext' ;; nto-qnx*) + library_names_spec='$libname$shrext' ;; openbsd*) + library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll + library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' ;; solaris*) + library_names_spec='$libname$shrext' ;; sunos4*) + library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' ;; sysv4*MP*) + library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' ;; uts4*) + library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` + escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF *************** *** 596,601 **** --- 636,647 ---- # Shared library suffix (normally "so"). shlibext="$shlibext" + # Format of library name prefix. + libname_spec="$escaped_libname_spec" + + # Library names that the linker finds when passed -lNAME. + library_names_spec="$escaped_library_names_spec" + # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" diff -r -c3 --exclude='*.po*' --exclude='*.info*' --exclude='*_*.html' --exclude='*.*.html' --exclude='*.[13]' --exclude='*.1.in' --exclude=Makefile.in --exclude=aclocal.m4 --exclude=configure --exclude=config.h.in --exclude=version.texi --exclude=stamp-vti --exclude='po-*-gen*.[ch]' --exclude='*.o' --exclude='*.lo' --exclude='*.gmo' --exclude=ABOUT-NLS --exclude=gnulib-lib --exclude=gnulib-m4 --exclude=Makefile.gnulib --exclude='javadoc[12]' --exclude=CVS gettext-cvs/autoconf-lib-link/m4/lib-link.m4 gettext-6/autoconf-lib-link/m4/lib-link.m4 *** m4/lib-link.m4 Sun Dec 10 02:45:46 2006 --- m4/lib-link.m4 Sun Dec 24 19:43:14 2006 *************** *** 1,4 **** ! # lib-link.m4 serial 10 (gettext-0.16.2) dnl Copyright (C) 2001-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # lib-link.m4 serial 11 (gettext-0.16.2) dnl Copyright (C) 2001-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 120,125 **** --- 120,127 ---- wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" + libname_spec="$acl_cv_libname_spec" + library_names_spec="$acl_cv_library_names_spec" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" *************** *** 211,237 **** found_la= found_so= found_a= if test $use_additional = yes; then ! if test -n "$shlibext" \ ! && { test -f "$additional_libdir/lib$name.$shlibext" \ ! || { test "$shlibext" = dll \ ! && test -f "$additional_libdir/lib$name.dll.a"; }; }; then ! found_dir="$additional_libdir" ! if test -f "$additional_libdir/lib$name.$shlibext"; then ! found_so="$additional_libdir/lib$name.$shlibext" else ! found_so="$additional_libdir/lib$name.dll.a" fi ! if test -f "$additional_libdir/lib$name.la"; then ! found_la="$additional_libdir/lib$name.la" fi ! else ! if test -f "$additional_libdir/lib$name.$libext"; then ! found_dir="$additional_libdir" ! found_a="$additional_libdir/lib$name.$libext" ! if test -f "$additional_libdir/lib$name.la"; then ! found_la="$additional_libdir/lib$name.la" ! fi fi fi fi --- 213,265 ---- found_la= found_so= found_a= + eval libname=\"$libname_spec\" # typically: libname=lib$name + if test -n "$shlibext"; then + shrext=".$shlibext" # typically: shrext=.so + else + shrext= + fi if test $use_additional = yes; then ! dir="$additional_libdir" ! dnl The same code as in the loop below: ! dnl First look for a shared library. ! if test -n "$shlibext"; then ! if test -f "$dir/$libname$shrext"; then ! found_dir="$dir" ! found_so="$dir/$libname$shrext" else ! if test "$library_names_spec" = '$libname$shrext$versuffix'; then ! ver=`(cd "$dir" && \ ! for f in "$libname$shrext".*; do echo "$f"; done \ ! | sed -e "s,^$libname$shrext\\\\.,," \ ! | tr '.' ' ' | sort -n -r -k1 -k2 -k3 -k4 -k5 | tr ' ' '.' \ ! | sed 1q ) 2>/dev/null` ! if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then ! found_dir="$dir" ! found_so="$dir/$libname$shrext.$ver" ! fi ! else ! eval library_names=\"$library_names_spec\" ! for f in $library_names; do ! if test -f "$dir/$f"; then ! found_dir="$dir" ! found_so="$dir/$f" ! break ! fi ! done ! fi fi ! fi ! dnl Then look for a static library. ! if test "X$found_dir" = "X"; then ! if test -f "$dir/$libname.$libext"; then ! found_dir="$dir" ! found_a="$dir/$libname.$libext" fi ! fi ! if test "X$found_dir" != "X"; then ! if test -f "$dir/$libname.la"; then ! found_la="$dir/$libname.la" fi fi fi *************** *** 241,266 **** case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` ! if test -n "$shlibext" \ ! && { test -f "$dir/lib$name.$shlibext" \ ! || { test "$shlibext" = dll \ ! && test -f "$dir/lib$name.dll.a"; }; }; then ! found_dir="$dir" ! if test -f "$dir/lib$name.$shlibext"; then ! found_so="$dir/lib$name.$shlibext" else ! found_so="$dir/lib$name.dll.a" ! fi ! if test -f "$dir/lib$name.la"; then ! found_la="$dir/lib$name.la" fi ! else ! if test -f "$dir/lib$name.$libext"; then found_dir="$dir" ! found_a="$dir/lib$name.$libext" ! if test -f "$dir/lib$name.la"; then ! found_la="$dir/lib$name.la" ! fi fi fi ;; --- 269,312 ---- case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` ! dnl First look for a shared library. ! if test -n "$shlibext"; then ! if test -f "$dir/$libname$shrext"; then ! found_dir="$dir" ! found_so="$dir/$libname$shrext" else ! if test "$library_names_spec" = '$libname$shrext$versuffix'; then ! ver=`(cd "$dir" && \ ! for f in "$libname$shrext".*; do echo "$f"; done \ ! | sed -e "s,^$libname$shrext\\\\.,," \ ! | tr '.' ' ' | sort -n -r -k1 -k2 -k3 -k4 -k5 | tr ' ' '.' \ ! | sed 1q ) 2>/dev/null` ! if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then ! found_dir="$dir" ! found_so="$dir/$libname$shrext.$ver" ! fi ! else ! eval library_names=\"$library_names_spec\" ! for f in $library_names; do ! if test -f "$dir/$f"; then ! found_dir="$dir" ! found_so="$dir/$f" ! break ! fi ! done ! fi fi ! fi ! dnl Then look for a static library. ! if test "X$found_dir" = "X"; then ! if test -f "$dir/$libname.$libext"; then found_dir="$dir" ! found_a="$dir/$libname.$libext" ! fi ! fi ! if test "X$found_dir" != "X"; then ! if test -f "$dir/$libname.la"; then ! found_la="$dir/$libname.la" fi fi ;;