GnuPG 1.9.92 build failures on old Linux

Alain Guibert alguibert+gpd at free.fr
Wed Oct 11 20:18:03 CEST 2006


Hello,

On my old Linux box (Intel Pentium 200 MMX, Debian bo, kernel 2.0.40,
gcc 2.7.2.1, libc 5.4.33, GNU ld cygnus-2.7.1, pth 2.0.7) during
GnuPG 1.9.92 build, make fails:

| $ ./configure; make
| [...]
| gcc -DHAVE_CONFIG_H -I. -I. -I..  -I../gl -I../common -I../intl -DLOCALEDIR=\"/usr/local/share/locale\" -DGNUPG_BINDIR="\"/usr/local/bin\"" -DGNUPG_LIBEXECDIR="\"/usr/local/libexec\"" -DGNUPG_LIBDIR="\"/usr/local/lib/gnupg\"" -DGNUPG_DATADIR="\"/usr/local/share/gnupg\"" -DGNUPG_SYSCONFDIR="\"/usr/local/etc/gnupg\""       -I/usr/local/include  -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -g -O2 -Wall -c protect-tool.c
| protect-tool.c: In function `get_passphrase':
| protect-tool.c:1187: `orig_codeset' undeclared (first use this function)
| protect-tool.c:1187: (Each undeclared identifier is reported only once
| protect-tool.c:1187: for each function it appears in.)
| make[2]: *** [protect-tool.o] Error 1
| make[2]: Leaving directory `/tmp/gnupg-1.9.92/agent'
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory `/tmp/gnupg-1.9.92'
| make: *** [all] Error 2


I disabled agent for now. But I still failed:

| $ ./configure --disable-agent; make
| [...]
| gcc -DHAVE_CONFIG_H -I. -I. -I..  -I../gl -I../intl -I../common -DLOCALEDIR=\"/usr/local/share/locale\" -DGNUPG_BINDIR="\"/usr/local/bin\"" -DGNUPG_LIBEXECDIR="\"/usr/local/libexec\"" -DGNUPG_LIBDIR="\"/usr/local/lib/gnupg\"" -DGNUPG_DATADIR="\"/usr/local/share/gnupg\"" -DGNUPG_SYSCONFDIR="\"/usr/local/etc/gnupg\""       -I/usr/local/include  -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -g -O2 -Wall -c apdu.c
| In file included from apdu.c:37:
| /usr/include/unistd.h:656: conflicting types for `pth_usleep'
| /usr/local/include/pth.h:531: previous declaration of `pth_usleep'
| make[2]: *** [apdu.o] Error 1
| make[2]: Leaving directory `/tmp/gnupg-1.9.92/scd'
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory `/tmp/gnupg-1.9.92'
| make: *** [all] Error 2

My system /usr/include/unistd.h line 656 is:

| extern void   usleep __P((unsigned long __usec));

While libpth 2.0.7 /usr/local/include/pth.h contains:

| extern int            pth_usleep(unsigned int);
| #define usleep        pth_usleep


I temporarily commented out the unistd.h usleep to get past this error.
But I still failed later:

| gcc -DHAVE_CONFIG_H -I. -I. -I..  -I../gl -I../intl -I../common -DLOCALEDIR=\"/usr/local/share/locale\" -DGNUPG_BINDIR="\"/usr/local/bin\"" -DGNUPG_LIBEXECDIR="\"/usr/local/libexec\"" -DGNUPG_LIBDIR="\"/usr/local/lib/gnupg\"" -DGNUPG_DATADIR="\"/usr/local/share/gnupg\"" -DGNUPG_SYSCONFDIR="\"/usr/local/etc/gnupg\""       -I/usr/local/include  -I/usr/local/include -I/usr/local/include -I/usr/local/include -g -O2 -Wall -c watchgnupg.c
| watchgnupg.c: In function `main':
| watchgnupg.c:227: `socklen_t' undeclared (first use this function)
| watchgnupg.c:227: (Each undeclared identifier is reported only once
| watchgnupg.c:227: for each function it appears in.)
| watchgnupg.c:227: parse error before `addrlen'
| watchgnupg.c:290: `addrlen' undeclared (first use this function)
| make[2]: *** [watchgnupg.o] Error 1
| make[2]: Leaving directory `/tmp/gnupg-1.9.92/tools'
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory `/tmp/gnupg-1.9.92'
| make: *** [all] Error 2

So I replaced socklen_t by int in watchgnupg.c, and this time build
succeeded. Make check passed all PGP tests OK, but failed the 2 gpgsm
tests:

| asschk: cmd_expect_ok: expected OK but got `ERR 50331649 General error <GpgSM>'
| FAIL: sm-sign+verify
| FAIL: sm-verify
| ====================================
| 2 of 2 tests failed
| Please report to bug-gnupg at gnupg.org
| ====================================
| make[3]: *** [check-TESTS] Error 1
| make[3]: Leaving directory `/tmp/gnupg-1.9.92/tests'
| make[2]: *** [check-am] Error 2
| make[2]: Leaving directory `/tmp/gnupg-1.9.92/tests'
| make[1]: *** [check-recursive] Error 1
| make[1]: Leaving directory `/tmp/gnupg-1.9.92/tests'
| make: *** [check-recursive] Error 1


Alain.




More information about the Gnupg-devel mailing list