[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: Debian Squeeze 64-bit, dlopen() missing?



Hi!

The --enable-64bit flag is just to enable 64bit counters in pmacct, and I get the same error without it.

I've also tried using LDFLAGS to point out every single lib-directory on the server when running configure ;)

Here's the the info from config.log when things start to go bad (the undefined reference to "pfring_enable_hw_timestamp" I guess is because it failed to find dlopen and load shared libs):

---
configure:2701: checking whether to disable shared objects
configure:2806: checking for dlopen
configure:2834: gcc -o conftest -O2  -Wl,--export-dynamic  conftest.c  -L/usr/local/lib -lpcap -lpfring -L/usr/lib -lmysqlclient 1>&5
/tmp/ccmfOILI.o: In function `main':
conftest.c:(.text+0x7): undefined reference to `dlopen'
/usr/local/lib/libpfring.so: undefined reference to `pfring_enable_hw_timestamp'
collect2: ld returned 1 exit status
configure: failed program was:
#line 2811 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char dlopen(); below.  */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char dlopen();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_dlopen) || defined (__stub___dlopen)
choke me
#else
dlopen();
#endif

; return 0; }
configure:2855: checking for dlopen in -ldl
configure:2874: gcc -o conftest -O2  -Wl,--export-dynamic  conftest.c -ldl   -L/usr/local/lib -lpcap -lpfring -L/usr/lib -lmysqlclient 1>&5
/usr/local/lib/libpfring.so: undefined reference to `pfring_enable_hw_timestamp'
collect2: ld returned 1 exit status
configure: failed program was:
#line 2863 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char dlopen();

int main() {
dlopen()
; return 0; }
---

Regards,

Johan

-----Original Message-----
From: Roger Leigh [mailto:rleigh@codelibre.net] 
Sent: den 16 februari 2011 11:50
To: Johan Karlsson
Cc: debian-user@lists.debian.org
Subject: Re: Debian Squeeze 64-bit, dlopen() missing?

On Wed, Feb 16, 2011 at 11:23:51AM +0100, Johan Karlsson wrote:
> I'm trying to compile pmacct from source under Debian Squeeze 64-bit, but it can't seem to find dlopen(). The very same thing works without problems on Debian Squeeze 32-bit.
> /usr/local/src/pmacct-0.12.5# ./configure --enable-mysql 
> --with-mysql-libs=/usr/lib --enable-64bit

Check exactly what it did in config.log.

Note that the --enable-64bit might be what's causing you problems; if you're on a 64 bit system already, it might be making it look for libraries in odd locations or with 64 suffixes or something odd.
The log will show you what it tried to do and failed.


Regards,
Roger

--
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux             http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?       http://gutenprint.sourceforge.net/
   `-    GPG Public Key: 0x25BFB848   Please GPG sign your mail.


Reply to: