Subject: Re: freeradius fails to build
To: None <port-amiga@NetBSD.org>
From: Klaus Heinz <k.heinz.sep.sieben@kh-22.de>
List: port-amiga
Date: 09/16/2007 19:03:12
--wULyF7TL5taEdwHz
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

as I suspected the direct cause is the missing detection of
pthread_create():

  configure:19993: checking for pthread_create in  -pthread
  configure:20028: cc -o conftest -O2 -m68060 -I/usr/local/include
    -I/usr/local/include/mysql -I/usr/include -I/usr/local/include
    -I/usr/local/include/mysql -I/usr/include -L/usr/local/lib
    -Wl,-R/usr/local/lib -L/usr/local/lib/mysql -Wl,-R/usr/local/lib/mysql
    -L/usr/lib -Wl,-R/usr/lib conftest.c  -pthread    >&5
  /var/tmp//ccLlpapd.o: In function `main':
  conftest.c:(.text+0x6): undefined reference to `pthread_create'

This should not happen since "-pthread" tells the compiler/linker where
pthread_create is supposed to be found.

Please compile the appended test program conftest.c with both of the
following command lines:
  $ gcc -o conftest -O2 -m68060 conftest.c -pthread

  $ /usr/pkgsrc/net/freeradius/work/.gcc/bin/gcc -o conftest -O2 -m68060
  -I/usr/pkgsrc/net/freeradius/work/.buildlink/include
  -I/usr/pkgsrc/net/freeradius/work/.buildlink/include/mysql
  -L/usr/pkgsrc/net/freeradius/work/.buildlink/lib -Wl,-R/usr/local/lib
  -L/usr/pkgsrc/net/freeradius/work/.buildlink/lib/mysql
  -Wl,-R/usr/local/lib/mysql conftest.c -pthread

Does this either of them work?

ciao
     Klaus

--wULyF7TL5taEdwHz
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="conftest.c"

/* confdefs.h.  */
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#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 WORDS_BIGENDIAN 1
#define HAVE_DLFCN_H 1
#define ASCEND_BINARY 1
#define HAVE_PTHREAD_H 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 pthread_create ();
int
main ()
{
return pthread_create ();
  ;
  return 0;
}


--wULyF7TL5taEdwHz--