diff options
author | Raimo Niskanen <[email protected]> | 2011-11-30 10:41:41 +0100 |
---|---|---|
committer | Raimo Niskanen <[email protected]> | 2011-11-30 10:41:41 +0100 |
commit | 8e5ef86ee21cb6491287710606a7525f45cc50fc (patch) | |
tree | a82c76458b56c5faa76cdd12321dfad802b8cbd1 /erts/configure.in | |
parent | 598001378c7328fff3fa7b08cec1741b3b536226 (diff) | |
parent | cc6a54d8f4467083fd2b450764a7178918667e96 (diff) | |
download | otp-8e5ef86ee21cb6491287710606a7525f45cc50fc.tar.gz otp-8e5ef86ee21cb6491287710606a7525f45cc50fc.tar.bz2 otp-8e5ef86ee21cb6491287710606a7525f45cc50fc.zip |
Merge branch 'tn/inet_drv-fix'
* tn/inet_drv-fix:
Cleanup - remove unnecesary bracket level and configure for ifreq.ifr_enaddr
Work around gcc linking with own view of default libs on Solaris
Use libdlpi to get physical address
Diffstat (limited to 'erts/configure.in')
-rw-r--r-- | erts/configure.in | 65 |
1 files changed, 63 insertions, 2 deletions
diff --git a/erts/configure.in b/erts/configure.in index 76a2e2d800..1792ce850b 100644 --- a/erts/configure.in +++ b/erts/configure.in @@ -1479,9 +1479,71 @@ AC_CHECK_HEADERS(fcntl.h limits.h unistd.h syslog.h dlfcn.h ieeefp.h \ sys/types.h sys/stropts.h sys/sysctl.h \ sys/ioctl.h sys/time.h sys/uio.h \ sys/socket.h sys/sockio.h sys/socketio.h \ - net/errno.h malloc.h arpa/nameser.h \ + net/errno.h malloc.h arpa/nameser.h libdlpi.h \ pty.h util.h utmp.h langinfo.h poll.h sdkddkver.h) +AC_CHECK_MEMBERS([struct ifreq.ifr_hwaddr], [], [], + [#ifdef __WIN32__ + #else + #ifdef VXWORKS + #else + #include <net/if.h> + #endif + #endif + ]) + +AC_CHECK_MEMBERS([struct ifreq.ifr_enaddr], [], [], + [#ifdef __WIN32__ + #else + #ifdef VXWORKS + #else + #include <net/if.h> + #endif + #endif + ]) + +dnl ---------------------------------------------------------------------- +dnl Check the availability for libdlpi +dnl ---------------------------------------------------------------------- +AC_CHECK_LIB(dlpi, dlpi_open) +if test x"$ac_cv_lib_dlpi_dlpi_open" = x"no"; then + unset -v ac_cv_lib_dlpi_dlpi_open + dnl Try again now with -L/lib (or ditto 64) as argument to linker since + dnl gcc makes /usr/ccs/bin/ld ignore the crle configured linker default paths + dnl typically causing dlpi not being found on Solaris et.al + save_ldflags="$LDFLAGS" + try_dlpi_lib=/lib + if test x"$ac_cv_sizeof_void_p" = x"8"; then + if test -d /lib64; then + try_dlpi_lib=/lib64 + elif test -d /lib/64; then + try_dlpi_lib=/lib/64 + fi + fi + if test ! -f "$try_dlpi_lib/libdlpi.so" && \ + test -f "$try_dlpi_lib/libdlpi.so.1" + then + dnl It looks like there is a missing symlink + dnl - let's be helpful and notify the user + dnl NOTE this help is far from perfect e.g if there would be no + dnl *.so.1 but a *.so.1.123 or *.so.2 this will be no help + AC_MSG_ERROR( + [Your OS installation is missing a symbolic link. + Maybe it lacks some development package(s)... + It can anyhow be fixed with the following command: + # ln -s libdlpi.so.1 $try_dlpi_lib/libdlpi.so + ]) + fi + LDFLAGS="-L$try_dlpi_lib -R$try_dlpi_lib $LDFLAGS" + unset -v try_dlpi_lib + AC_MSG_NOTICE([Extending the search to include /lib]) + AC_CHECK_LIB(dlpi, dlpi_open) + if test x"$ac_cv_lib_dlpi_dlpi_open" = x"no"; then + LDFLAGS="$save_ldflags" + fi + unset -v save_ldflags +fi + AC_CHECK_HEADER(sys/resource.h, [AC_DEFINE(HAVE_SYS_RESOURCE_H, 1, [Define to 1 if you have the <sys/resource.h> header file]) @@ -4317,7 +4379,6 @@ AH_BOTTOM([ #endif ]) - dnl ---------------------------------------------------------------------- dnl Output the result. dnl ---------------------------------------------------------------------- |