See ChangeLog: Thu Dec 10 20:15:36 CET 1998 Werner Koch
authorWerner Koch <wk@gnupg.org>
Thu, 10 Dec 1998 19:20:31 +0000 (19:20 +0000)
committerWerner Koch <wk@gnupg.org>
Thu, 10 Dec 1998 19:20:31 +0000 (19:20 +0000)
AUTHORS
ChangeLog
THANKS
acinclude.m4
cipher/ChangeLog
cipher/dynload.c
cipher/random.c
cipher/rndlinux.c
cipher/rndunix.c
configure.in

diff --git a/AUTHORS b/AUTHORS
index 5b125d9..8a4fb94 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -55,6 +55,11 @@ pt_BR.po
 
 Other notes:
 ============
+This program uses the zlib compression library written by
+Jean-loup Gailly and Mark Adler.
+
+Most of the stuff in mpi has been taken from the GMP library.
+
 The file cipher/rndunix.c is heavily based on Peter Gutmann's
 rndunix.c from cryptlib. - He promised to add the GPL as an alternative
 license to this and some other files.  We don't have a dissclaimer for
index 467fe8b..1498fc5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * acinclude.m (GNUPG_CHECK_PIC): New
+       * configure.in, acinclude.m4: Renamed all WK_ to GNUPG_
+
 Tue Dec  8 15:09:29 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
     * VERSION: Set to 0.4.5
diff --git a/THANKS b/THANKS
index 386b53d..8d5ab85 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -50,6 +50,7 @@ Michael Sobolev       mss@despair.transas.com
 Nicolas Graner         Nicolas.Graner@cri.u-psud.fr
 Niklas Hernaeus        [Please don't spam him]
 Nimrod Zimerman        zimerman@forfree.at
+N J Doye               nic@niss.ac.uk
 Oskari Jääskeläinen    f33003a@cc.hut.fi
 Paul D. Smith          psmith@baynetworks.com
 Peter Gutmann          pgut001@cs.auckland.ac.nz
index bb8700f..13eff5f 100644 (file)
@@ -1,41 +1,41 @@
 dnl macros to configure g10
 
 
-dnl WK_MSG_PRINT(STRING)
+dnl GNUPG_MSG_PRINT(STRING)
 dnl print a message
 dnl
-define(WK_MSG_PRINT,
+define(GNUPG_MSG_PRINT,
   [ echo $ac_n "$1"" $ac_c" 1>&AC_FD_MSG
   ])
 
 
-dnl WK_CHECK_TYPEDEF(TYPE, HAVE_NAME)
+dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME)
 dnl Check whether a typedef exists and create a #define $2 if it exists
 dnl
-AC_DEFUN(WK_CHECK_TYPEDEF,
+AC_DEFUN(GNUPG_CHECK_TYPEDEF,
   [ AC_MSG_CHECKING(for $1 typedef)
-    AC_CACHE_VAL(wk_cv_typedef_$1,
+    AC_CACHE_VAL(gnupg_cv_typedef_$1,
     [AC_TRY_COMPILE([#include <stdlib.h>
     #include <sys/types.h>], [
     #undef $1
     int a = sizeof($1);
-    ], wk_cv_typedef_$1=yes, wk_cv_typedef_$1=no )])
-    AC_MSG_RESULT($wk_cv_typedef_$1)
-    if test "$wk_cv_typedef_$1" = yes; then
+    ], gnupg_cv_typedef_$1=yes, gnupg_cv_typedef_$1=no )])
+    AC_MSG_RESULT($gnupg_cv_typedef_$1)
+    if test "$gnupg_cv_typedef_$1" = yes; then
         AC_DEFINE($2)
     fi
   ])
 
 
 
-dnl WK_LINK_FILES( SRC, DEST )
+dnl GNUPG_LINK_FILES( SRC, DEST )
 dnl same as AC_LINK_FILES, but collect the files to link in
 dnl some special variables and do the link
-dnl when WK_DO_LINK_FILES is called
+dnl when GNUPG_DO_LINK_FILES is called
 dnl This is a workaround for AC_LINK_FILES, because it does not work
 dnl correct when using a caching scheme
 dnl
-define(WK_LINK_FILES,
+define(GNUPG_LINK_FILES,
   [ if test "x$wk_link_files_src" = "x"; then
         wk_link_files_src="$1"
         wk_link_files_dst="$2"
@@ -44,21 +44,21 @@ define(WK_LINK_FILES,
         wk_link_files_dst="$wk_link_files_dst $2"
     fi
   ])
-define(WK_DO_LINK_FILES,
+define(GNUPG_DO_LINK_FILES,
   [ AC_LINK_FILES( $wk_link_files_src, $wk_link_files_dst )
   ])
 
 
-dnl WK_CHECK_ENDIAN
+dnl GNUPG_CHECK_ENDIAN
 dnl define either LITTLE_ENDIAN_HOST or BIG_ENDIAN_HOST
 dnl
-define(WK_CHECK_ENDIAN,
+define(GNUPG_CHECK_ENDIAN,
   [ if test "$cross_compiling" = yes; then
         AC_MSG_WARN(cross compiling; assuming little endianess)
     fi
     AC_MSG_CHECKING(endianess)
-    AC_CACHE_VAL(wk_cv_c_endian,
-      [ wk_cv_c_endian=unknown
+    AC_CACHE_VAL(gnupg_cv_c_endian,
+      [ gnupg_cv_c_endian=unknown
         # See if sys/param.h defines the BYTE_ORDER macro.
         AC_TRY_COMPILE([#include <sys/types.h>
         #include <sys/param.h>], [
@@ -69,8 +69,8 @@ define(WK_CHECK_ENDIAN,
         #include <sys/param.h>], [
         #if BYTE_ORDER != BIG_ENDIAN
          not big endian
-        #endif], wk_cv_c_endian=big, wk_cv_c_endian=little)])
-        if test "$wk_cv_c_endian" = unknown; then
+        #endif], gnupg_cv_c_endian=big, gnupg_cv_c_endian=little)])
+        if test "$gnupg_cv_c_endian" = unknown; then
             AC_TRY_RUN([main () {
               /* Are we little or big endian?  From Harbison&Steele.  */
               union
@@ -81,27 +81,27 @@ define(WK_CHECK_ENDIAN,
               u.l = 1;
               exit (u.c[sizeof (long) - 1] == 1);
               }],
-              wk_cv_c_endian=little,
-              wk_cv_c_endian=big,
-              wk_cv_c_endian=little
+              gnupg_cv_c_endian=little,
+              gnupg_cv_c_endian=big,
+              gnupg_cv_c_endian=little
             )
         fi
       ])
-    AC_MSG_RESULT([$wk_cv_c_endian])
-    if test "$wk_cv_c_endian" = little; then
+    AC_MSG_RESULT([$gnupg_cv_c_endian])
+    if test "$gnupg_cv_c_endian" = little; then
       AC_DEFINE(LITTLE_ENDIAN_HOST)
     else
       AC_DEFINE(BIG_ENDIAN_HOST)
     fi
   ])
 
-dnl WK_CHECK_CACHE
+dnl GNUPG_CHECK_CACHE
 dnl
-define(WK_CHECK_CACHE,
+define(GNUPG_CHECK_CACHE,
   [ AC_MSG_CHECKING(cached information)
-    wk_hostcheck="$target"
-    AC_CACHE_VAL(wk_cv_hostcheck, [ wk_cv_hostcheck="$wk_hostcheck" ])
-    if test "$wk_cv_hostcheck" != "$wk_hostcheck"; then
+    gnupg_hostcheck="$target"
+    AC_CACHE_VAL(gnupg_cv_hostcheck, [ gnupg_cv_hostcheck="$gnupg_hostcheck" ])
+    if test "$gnupg_cv_hostcheck" != "$gnupg_hostcheck"; then
         AC_MSG_RESULT(changed)
         AC_MSG_WARN(config.cache exists!)
         AC_MSG_ERROR(you must do 'make distclean' first to compile for
@@ -112,65 +112,138 @@ define(WK_CHECK_CACHE,
   ])
 
 
-
-
 ######################################################################
-# Check for SysV IPC  (from GIMP)
-#   And see whether we have a SHM_LOCK (FreeBSD does not have it).
+# Check for -fPIC etc (taken from libtool)
+# This sets CFLAGS_PIC to the required flags
+#           NO_PIC to yes if it is not possible to
+#                  generate PIC
 ######################################################################
-dnl WK_CHECK_IPC
+dnl GNUPG_CHECK_PIC
 dnl
-define(WK_CHECK_IPC,
-  [ AC_CHECK_HEADERS(sys/ipc.h sys/shm.h)
-    if test "$ac_cv_header_sys_shm_h" = "yes"; then
-      AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
-      AC_TRY_RUN([
-            #include <sys/types.h>
-            #include <sys/ipc.h>
-            #include <sys/shm.h>
-            int main()
-            {
-              int id;
-              char *shmaddr;
-            id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777);
-            if (id == -1)
-              exit (2);
-              shmaddr = shmat (id, 0, 0);
-              shmctl (id, IPC_RMID, 0);
-              if ((char*) shmat (id, 0, 0) == (char*) -1)
-              {
-                shmdt (shmaddr);
-                exit (1);
-              }
-              shmdt (shmaddr);
-              shmdt (shmaddr);
-              exit (0);
-            }
-        ],
-        AC_DEFINE(IPC_RMID_DEFERRED_RELEASE)
-        AC_MSG_RESULT(yes),
-        AC_MSG_RESULT(no),
-        AC_MSG_RESULT(assuming no))
-      AC_MSG_CHECKING(whether SHM_LOCK is available)
-      AC_TRY_COMPILE([#include <sys/types.h>
-            #include <sys/ipc.h>
-            #include <sys/shm.h>],[
-            int foo( int shm_id ) {  shmctl(shm_id, SHM_LOCK, 0); }
-            ],
-        AC_DEFINE(IPC_HAVE_SHM_LOCK)
-        AC_MSG_RESULT(yes),
-        AC_MSG_RESULT(no))
+define(GNUPG_CHECK_PIC,
+  [ AC_MSG_CHECKING(for option to create PIC)
+    CFLAGS_PIC=
+    NO_PIC=no
+    if test "$cross_compiling" = yes; then
+        AC_MSG_RESULT(assume none)
+    else
+        if test "$GCC" = yes; then
+            CFLAGS_PIC="-fPIC"
+        else
+            case "$host_os" in
+              aix3* | aix4*)
+                # All rs/6000 code is PIC
+                # but is there any non-rs/6000 AIX platform?
+                ;;
+
+              hpux9* | hpux10*)
+                CFLAGS_PIC="+Z"
+                ;;
+
+              irix5* | irix6*)
+                # PIC (with -KPIC) is the default.
+                ;;
+
+              osf3* | osf4*)
+                # FIXME - pic_flag is probably required for
+                # hppa*-osf* and i860-osf*
+                ;;
+
+              sco3.2v5*)
+                CFLAGS_PIC='-Kpic'
+                ;;
+
+              solaris2* | solaris7* )
+                CFLAGS_PIC='-KPIC'
+                ;;
+
+              sunos4*)
+                CFLAGS_PIC='-PIC'
+                ;;
+
+              *)
+                NO_PIC=yes
+                ;;
+            esac
+        fi
+
+        case "$host_cpu" in
+        rs6000 | powerpc | powerpcle)
+          # Yippee! All RS/6000 and PowerPC code is position-independent.
+          CFLAGS_PIC=""
+          ;;
+        esac
+
+        if test "$NO_PIC" = yes; then
+            AC_MSG_RESULT(not possible)
+        else
+            if test -z "$CFLAGS_PIC"; then
+               AC_MSG_RESULT(none)
+            else
+                AC_MSG_RESULT($CFLAGS_PIC)
+            fi
+        fi
     fi
   ])
 
 
+#####################################################################
+# Check for SysV IPC  (from GIMP)
+#   And see whether we have a SHM_LOCK (FreeBSD does not have it).
+#####################################################################
+dnl GNUPG_CHECK_IPC
+dnl
+define(GNUPG_CHECK_IPC,
+   [ AC_CHECK_HEADERS(sys/ipc.h sys/shm.h)
+     if test "$ac_cv_header_sys_shm_h" = "yes"; then
+       AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
+       AC_TRY_RUN([
+             #include <sys/types.h>
+             #include <sys/ipc.h>
+             #include <sys/shm.h>
+             int main()
+             {
+               int id;
+               char *shmaddr;
+             id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777);
+             if (id == -1)
+               exit (2);
+               shmaddr = shmat (id, 0, 0);
+               shmctl (id, IPC_RMID, 0);
+               if ((char*) shmat (id, 0, 0) == (char*) -1)
+               {
+                 shmdt (shmaddr);
+                 exit (1);
+               }
+               shmdt (shmaddr);
+               shmdt (shmaddr);
+               exit (0);
+             }
+         ],
+         AC_DEFINE(IPC_RMID_DEFERRED_RELEASE)
+         AC_MSG_RESULT(yes),
+         AC_MSG_RESULT(no),
+         AC_MSG_RESULT(assuming no))
+       AC_MSG_CHECKING(whether SHM_LOCK is available)
+       AC_TRY_COMPILE([#include <sys/types.h>
+             #include <sys/ipc.h>
+             #include <sys/shm.h>],[
+             int foo( int shm_id ) {  shmctl(shm_id, SHM_LOCK, 0); }
+             ],
+         AC_DEFINE(IPC_HAVE_SHM_LOCK)
+         AC_MSG_RESULT(yes),
+         AC_MSG_RESULT(no))
+     fi
+   ])
+
+
 ######################################################################
 # Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock
 # is not called from uid 0 (not tested whether uid 0 works)
 ######################################################################
-dnl WK_CHECK_MLOCK
+dnl GNUPG_CHECK_MLOCK
 dnl
-define(WK_CHECK_MLOCK,
+define(GNUPG_CHECK_MLOCK,
   [ AC_CHECK_FUNCS(mlock)
     if test "$ac_cv_func_mlock" = "yes"; then
         AC_MSG_CHECKING(whether mlock is broken)
@@ -533,3 +606,4 @@ strdup __argz_count __argz_stringify __argz_next])
         < $srcdir/po/POTFILES.in > po/POTFILES
   ])
 
+dnl *-*wedit:notab*-*  Please keep this as the last line.
index 415f58b..1df5a15 100644 (file)
@@ -1,3 +1,15 @@
+Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * dynload.c (load_extension): increased needed verbosity level.
+
+       * random.c (fast_random_poll): Fallback to a default fast random
+       poll function.
+       (read_random_source): Always use the faked entroy gatherer if no
+       gather module is available.
+       * rndlinux.c (fast_poll): Removed.
+       * rndunix.c (fast_poll): Removed.
+
+
 Wed Nov 25 12:33:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
        * rand-*.c: Removed.
index 7278928..204f186 100644 (file)
@@ -231,7 +231,7 @@ load_extension( EXTLIST el )
     name = (char**)addr;
   #endif
 
-    if( g10_opt_verbose )
+    if( g10_opt_verbose > 1 )
        log_info("%s: %s%s%s%s\n", el->name, *name,
                  el->hintstr? " (":"",
                  el->hintstr? el->hintstr:"",
@@ -262,7 +262,7 @@ load_extension( EXTLIST el )
   #endif
 
   #ifdef HAVE_DL_DLOPEN
-    if( g10_opt_verbose > 1 ) {
+    if( g10_opt_verbose > 2 ) {
        /* list the contents of the module */
        while( (sym = (*el->enumfunc)(0, &seq, &class, &vers)) ) {
            if( vers != 1 ) {
index e173a52..32415bd 100644 (file)
 #include <assert.h>
 #include <errno.h>
 #include <string.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#ifdef HAVE_GETHRTIME
+  #include <sys/times.h>
+#endif
+#ifdef HAVE_GETTIMEOFDAY
+  #include <sys/times.h>
+#endif
+#ifdef HAVE_GETRUSAGE
+  #include <sys/resource.h>
+#endif
 #include "util.h"
 #include "rmd.h"
 #include "ttyio.h"
@@ -83,9 +95,7 @@ static void read_pool( byte *buffer, size_t length, int level );
 static void add_randomness( const void *buffer, size_t length, int source );
 static void random_poll(void);
 static void read_random_source( byte *buffer, size_t length, int level );
-#ifndef HAVE_DEV_RANDOM
 static int gather_faked( byte *buffer, size_t *r_length, int level );
-#endif
 
 
 static void
@@ -329,11 +339,39 @@ fast_random_poll()
            initialize();
        initialized = 1;
        fnc = dynload_getfnc_fast_random_poll();
-       if( !fnc )
-           log_info("Ooops: No fast random poll function\n");
     }
-    if( fnc )
+    if( fnc ) {
        (*fnc)( add_randomness );
+       return;
+    }
+
+    /* fall back to the generic function */
+  #if HAVE_GETHRTIME
+    {  hrtime_t tv;
+       tv = gethrtime();
+       add_randomness( &tv, sizeof(tv), 1 );
+    }
+  #elif HAVE_GETTIMEOFDAY
+    {  struct timeval tv;
+       if( gettimeofday( &tv, NULL ) )
+           BUG();
+       add_randomness( &tv.tv_sec, sizeof(tv.tv_sec), 1 );
+       add_randomness( &tv.tv_usec, sizeof(tv.tv_usec), 1 );
+    }
+  #else /* use times */
+    {  struct tms buf;
+       times( &buf );
+       add_randomness( &buf, sizeof buf, 1 );
+    }
+  #endif
+  #ifdef HAVE_GETRUSAGE
+    {  struct rusage buf;
+       if( getrusage( RUSAGE_SELF, &buf ) )
+           BUG();
+       add_randomness( &buf, sizeof buf, 1 );
+       memset( &buf, 0, sizeof buf );
+    }
+  #endif
 }
 
 
@@ -351,11 +389,7 @@ read_random_source( byte *buffer, size_t length, int level )
        fnc = dynload_getfnc_gather_random();
        if( !fnc ) {
            faked_rng = 1;
-         #ifndef HAVE_DEV_RANDOM
            fnc = gather_faked;
-         #else
-           BUG();
-         #endif
        }
     }
     while( length ) {
@@ -368,7 +402,6 @@ read_random_source( byte *buffer, size_t length, int level )
 }
 
 
-#ifndef HAVE_DEV_RANDOM
 static int
 gather_faked( byte *buffer, size_t *r_length, int level )
 {
@@ -378,7 +411,7 @@ gather_faked( byte *buffer, size_t *r_length, int level )
     if( !initialized ) {
        log_info(_("WARNING: using insecure random number generator!!\n"));
        tty_printf(_("The random number generator is only a kludge to let\n"
-                  "it compile - it is in no way a strong RNG!\n\n"
+                  "it run - it is in no way a strong RNG!\n\n"
                   "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n\n"));
        initialized=1;
       #ifdef HAVE_RAND
@@ -398,5 +431,3 @@ gather_faked( byte *buffer, size_t *r_length, int level )
     return 100; /* We really fake it ;-) */
 }
 
-#endif /* ! HAVE_DEV_RANDOM */
-
index 69af64f..3d0ac1b 100644 (file)
 #include <sys/time.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#ifdef HAVE_GETHRTIME
-  #include <sys/times.h>
-#endif
 #ifdef HAVE_GETTIMEOFDAY
   #include <sys/times.h>
 #endif
-#ifdef HAVE_GETRUSAGE
-  #include <sys/resource.h>
-#endif
 #include <string.h>
 #include <unistd.h>
 #include <fcntl.h>
@@ -61,38 +55,6 @@ static void tty_printf(const char *fmt, ... )
 #endif
 
 
-static void
-fast_poll( void (*add)(const void*, size_t, int) )
-{
-  #if HAVE_GETHRTIME
-    {  hrtime_t tv;
-       tv = gethrtime();
-       (*add)( &tv, sizeof(tv), 1 );
-    }
-  #elif HAVE_GETTIMEOFDAY
-    {  struct timeval tv;
-       if( gettimeofday( &tv, NULL ) )
-           BUG();
-       (*add)( &tv.tv_sec, sizeof(tv.tv_sec), 1 );
-       (*add)( &tv.tv_usec, sizeof(tv.tv_usec), 1 );
-    }
-  #else /* use times */
-    {  struct tms buf;
-       times( &buf );
-       (*add)( &buf, sizeof buf, 1 );
-    }
-  #endif
-  #ifdef HAVE_GETRUSAGE
-    {  struct rusage buf;
-       if( getrusage( RUSAGE_SELF, &buf ) )
-           BUG();
-       (*add)( &buf, sizeof buf, 1 );
-       memset( &buf, 0, sizeof buf );
-    }
-  #endif
-}
-
-
 
 /****************
  * Used to open the Linux and xBSD /dev/random devices
@@ -192,7 +154,6 @@ static struct {
     void *func;
 } func_table[] = {
     { 40, 1, gather_random },
-    { 41, 1, fast_poll },
 };
 
 
index 5309717..3eca9df 100644 (file)
@@ -617,38 +617,6 @@ slowPoll(void)
 }
 
 
-static void
-fast_poll( void (*add)(const void*, size_t, int) )
-{
-  #if HAVE_GETHRTIME
-    {  hrtime_t tv;
-       tv = gethrtime();
-       (*add)( &tv, sizeof(tv), 1 );
-    }
-  #elif HAVE_GETTIMEOFDAY
-    {  struct timeval tv;
-       if( gettimeofday( &tv, NULL ) )
-           BUG();
-       (*add)( &tv.tv_sec, sizeof(tv.tv_sec), 1 );
-       (*add)( &tv.tv_usec, sizeof(tv.tv_usec), 1 );
-    }
-  #else /* use times */
-    {  struct tms buf;
-       times( &buf );
-       (*add)( &buf, sizeof buf, 1 );
-    }
-  #endif
-  #ifdef HAVE_GETRUSAGE
-    {  struct rusage buf;
-       if( getrusage( RUSAGE_SELF, &buf ) )
-           BUG();
-       (*add)( &buf, sizeof buf, 1 );
-       memset( &buf, 0, sizeof buf );
-    }
-  #endif
-}
-
-
 
 static int
 gather_random( byte *buffer, size_t *r_length, int level )
@@ -698,7 +666,6 @@ static struct {
     void *func;
 } func_table[] = {
     { 40, 1, gather_random },
-    { 41, 1, fast_poll },
 };
 
 /****************
index 096d1ce..374e571 100644 (file)
@@ -55,9 +55,13 @@ else
 fi
 if test "$use_m_guard" = yes ; then
     AC_DEFINE(M_GUARD)
-    CFLAGS="$CFLAGS -g -Wall"
+    CFLAGS="$CFLAGS -g"
 else
-    CFLAGS="$CFLAGS -O2 -Wall"
+    CFLAGS="$CFLAGS -O2"
+fi
+
+if test "$GCC" = yes; then
+    CFLAGS="$CFLAGS -Wall"
 fi
 
 
@@ -87,7 +91,6 @@ AC_PROG_INSTALL
 AM_CYGWIN32
 
 
-
 case "${target}" in
     i386--mingw32)
         # special stuff for Windoze NT
@@ -108,6 +111,13 @@ case "${target}" in
        ;;
 esac
 
+
+GNUPG_CHECK_PIC
+if test "$NO_PIC" = yes; then
+    try_dynload=no
+fi
+
+
 case "${target}" in
     i386--mingw32)
         PRINTABLE_OS_NAME="MingW32"
@@ -131,7 +141,7 @@ case "${target}" in
     *)
         NAME_OF_DEV_RANDOM="/dev/random"
         NAME_OF_DEV_URANDOM="/dev/urandom"
-        DYNLINK_MOD_CFLAGS="-shared  -fPIC -lc"
+        DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC -lc"
         ;;
 esac
 AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM")
@@ -144,19 +154,20 @@ AM_GNU_GETTEXT
 
 AC_CHECK_LIB(gdbm,gdbm_firstkey)
 
+
 if test "$try_dynload" = yes ; then
 AC_CHECK_LIB(dl,dlopen)
 if test "$ac_cv_lib_dl_dlopen" = "yes"; then
   AC_DEFINE(USE_DYNAMIC_LINKING)
   AC_DEFINE(HAVE_DL_DLOPEN)
-  DYNLINK_LDFLAGS=-rdynamic
+  DYNLINK_LDFLAGS="-Wl,-export-dynamic"
   use_gnupg_extensions=yes
 else
 AC_CHECK_LIB(dld,dld_link)
 if test "$ac_cv_lib_dld_dld_link" = "yes"; then
   AC_DEFINE(USE_DYNAMIC_LINKING)
   AC_DEFINE(HAVE_DLD_DLD_LINK)
-  DYNLINK_LDFLAGS=-rdynamic
+  DYNLINK_LDFLAGS="-Wl,-export-dynamic"
   use_gnupg_extensions=yes
 fi
 fi
@@ -185,14 +196,14 @@ AC_TYPE_SIZE_T
 AC_TYPE_SIGNAL
 AC_DECL_SYS_SIGLIST
 
-WK_CHECK_ENDIAN
+GNUPG_CHECK_ENDIAN
 
 
-WK_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
-WK_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
-WK_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
-WK_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
-WK_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
+GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
+GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
+GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
+GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
+GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
 
 AC_CHECK_SIZEOF(unsigned short, 2)
 AC_CHECK_SIZEOF(unsigned int, 4)
@@ -212,9 +223,9 @@ AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr rand strtoul mmap)
 AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit)
 AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime)
 
-WK_CHECK_MLOCK
+GNUPG_CHECK_MLOCK
 
-WK_CHECK_IPC
+GNUPG_CHECK_IPC
 if test "$ac_cv_header_sys_shm_h" = "yes"; then
   AC_DEFINE(USE_SHM_COPROCESSING)
 fi
@@ -239,7 +250,7 @@ dnl setup assembler stuff
 AC_MSG_CHECKING(for mpi assembler functions)
 if test -f $srcdir/mpi/config.links ; then
     . $srcdir/mpi/config.links
-    WK_LINK_FILES($mpi_ln_src, $mpi_ln_dst)
+    GNUPG_LINK_FILES($mpi_ln_src, $mpi_ln_dst)
     ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
     ac_cv_mpi_sflags="$mpi_sflags"
     ac_cv_mpi_config_done="yes"
@@ -250,9 +261,9 @@ else
 fi
 MPI_EXTRA_ASM_OBJS=""
 if test "$ac_cv_mpi_extra_asm_modules" != ""; then
-WK_MSG_PRINT([mpi extra asm functions:])
+GNUPG_MSG_PRINT([mpi extra asm functions:])
 for i in $ac_cv_mpi_extra_asm_modules; do
-    WK_MSG_PRINT([$i])
+    GNUPG_MSG_PRINT([$i])
     MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
 done
 AC_MSG_RESULT()
@@ -266,8 +277,8 @@ dnl when compiling a conftest (due to the "-lz" from LIBS).
 if test "$g10_force_zlib" = "yes"; then
     ZLIBS="../zlib/libzlib.a"
     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
-    WK_LINK_FILES(zlib/zlib.h, zlib.h )
-    WK_LINK_FILES(zlib/zconf.h, zconf.h )
+    GNUPG_LINK_FILES(zlib/zlib.h, zlib.h )
+    GNUPG_LINK_FILES(zlib/zconf.h, zconf.h )
 else
 AC_CHECK_HEADERS(zlib.h)
 if test "$ac_cv_header_zlib_h" = yes ; then
@@ -277,13 +288,13 @@ if test "$ac_cv_header_zlib_h" = yes ; then
 else
     ZLIBS="../zlib/libzlib.a"
     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
-    WK_LINK_FILES(zlib/zlib.h, zlib.h )
-    WK_LINK_FILES(zlib/zconf.h, zconf.h )
+    GNUPG_LINK_FILES(zlib/zlib.h, zlib.h )
+    GNUPG_LINK_FILES(zlib/zconf.h, zconf.h )
 fi
 fi
 AC_SUBST(ZLIBS)
 
-WK_DO_LINK_FILES
+GNUPG_DO_LINK_FILES
 
 
 AC_OUTPUT([