Many Problems Building GnuPG

Jim Seymour jseymour at jimsun.LinxNet.com
Thu Feb 11 19:19:00 CET 1999


Hi,

Wanting to free myself of PGP (and most especially: NAI!), I
thought I'd take a look at GnuPG.  But it's not going well at
all :-(.

First, the specs: Sun Sparc Solaris 2.4 (yes 2.4), GCC 2.8.1,
GNU make, GnuPG 0.9.2.

After multiple tries, I finally got the package to compile with
the following options and by adding a hack:

    CFLAGS="-DPRE_551_SUNOS -UHAVE_GETRUSAGE" \
    LDFLAGS="-lsocket -lnsl" ./configure --with-included-gettext \
    --disable-dev-random

I think config needs some work.  For example: configure fails to
find either "getrusage()" or "getpagesize()", but the build acts
as if they're there anyway.  (2.5.1 has them.  I imagine 2.5 does
as well, but I don't have access to a 2.5 system.)  And with Sun
Solaris boxen you need those two libs for "socket", "gethostbyname",
"shutdown", and "connect".

So the "DPRE_551_SUNOS" goes with this hack:

*** rndunix.c-orig	Wed Feb 10 19:10:16 1999
--- rndunix.c	Wed Feb 10 19:12:12 1999
***************
*** 402,408 ****
    #if defined( __hpux )
      size_t maxFD = 0;
      int pageSize = 4096;	/* PHUX doesn't have getpagesize() */
!   #elif defined( _M_XENIX ) || defined( __aux )
      int maxFD = 0, pageSize = 4096;/* Nor do others, but they get fd right */
    #else
      int maxFD = 0, pageSize = getpagesize();
--- 402,408 ----
    #if defined( __hpux )
      size_t maxFD = 0;
      int pageSize = 4096;	/* PHUX doesn't have getpagesize() */
!   #elif defined( _M_XENIX ) || defined( __aux ) || defined(PRE_551_SUNOS)
      int maxFD = 0, pageSize = 4096;/* Nor do others, but they get fd right */
    #else
      int maxFD = 0, pageSize = getpagesize();

I don't know if I got that hack quite right.

After getting it to build, I tried "make check".  Results:

$ make check
   .
   .
   .
Supported algorithms:
Cipher: 3DES, CAST5, BLOWFISH, BLOWFISH160
Pubkey: ELG-E, DSA, ELG
Hash: MD5, SHA1, RIPEMD160, TIGER
PASS: version.test
Bus Error - core dumped
(../g10/gpgm --homedir . -v --print-mds) failed
FAIL: mds.test

$ cd checks
$ gdb ../g10/gpgm core
GNU gdb 4.17
   .
   .
   .
Reading symbols from /home/jseymour/exp/gpg/gnupg-0.9.2/checks/../cipher/tiger...done.
#0  0xef5e0a70 in tiger_init ()
(gdb) bt
#0  0xef5e0a70 in tiger_init ()
#1  0x4a324 in md_enable ()
#2  0x48018 in print_mds ()
#3  0x477e8 in main ()
(gdb) quit
$ 

If allowed to continue, "make check" carries on until (I put some
debug statements in the shell script)...

    .
    .
    .
PASS: decrypt-dsa.test
for i in $plain_files $data_files; do
i==plain-1
i==plain-2

During whatever's happening after that point, CPU usage goes to
100%, load starts climbing (up to 16 before I kill the thing),
and the console window starts emitting "ksyms: too many open
references" at increasing frequency the longer I let it run.

As regards the bus error in tiger_init(): excuse my ignorance,
but I noticed several of these in tiger.c.  How can a function
be defined to take an argument, as in "TIGER_CONTEXT *hd" yet
none of the calls to these routines pass them anything???  I've
been coding C for a few years now and I have to admit that this
is a new one on me!

I also tried building the package at work today (on Sparc Solaris
2.5.1 systems), but that hasn't gone well so far, either.  Nothing
is set up to handle the Sun commercial development system.  And
I'm hampered by being quite "configure-clueless" :-(.

Should I pursue this or am I hopelessly out-of-date and/or
out-of-touch/clueless?

Regards,
Jim
-- 
Jim Seymour                  | PGP Public Key available at:
jseymour at jimsun.LinxNet.com  | http://www.uk.pgp.net/pgpnet/pks-commands.html
http://home.msen.com/~jimsun | http://www.trustcenter.de/cgi-bin/SearchCert.cgi




More information about the Gnupg-devel mailing list