Errors while building from source on Cygwin (gnupg repo)
Open, LowPublic

Description

I get two errors while building from the master branch of the gnupg repository on Cygwin x64_86:

$ make
make all-recursive
make[1]: Entering directory '/home/john/git/gnupg'
Making all in m4
make[2]: Entering directory '/home/john/git/gnupg/m4'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/john/git/gnupg/m4'
Making all in common
make[2]: Entering directory '/home/john/git/gnupg/common'
make all-am
make[3]: Entering directory '/home/john/git/gnupg/common'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/john/git/gnupg/common'
make[2]: Leaving directory '/home/john/git/gnupg/common'
Making all in kbx
make[2]: Entering directory '/home/john/git/gnupg/kbx'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/john/git/gnupg/kbx'
Making all in g10
make[2]: Entering directory '/home/john/git/gnupg/g10'
gcc -I/usr/local/include -I/usr/local/include -I/usr/local/include -O3 -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wformat -Wno-format-y2k -Wformat-security -W -Wno-sign-compare -Wno-format-zero-length -Wno-missing-field-initializers -Wdeclaration-after-statement -Wlogical-op -Wvla -Wno-pointer-sign -Wpointer-arith -g -O2 -o gpg.exe gpg.o keyedit.o server.o build-packet.o compress.o free-packet.o getkey.o keydb.o keyring.o seskey.o kbnode.o mainproc.o armor.o mdfilter.o textfilter.o progress.o misc.o rmd160.o openfile.o keyid.o parse-packet.o cpr.o plaintext.o sig-check.o keylist.o pkglue.o ecdh.o pkclist.o skclist.o pubkey-enc.o passphrase.o decrypt.o decrypt-data.o cipher-cfb.o cipher-aead.o encrypt.o sign.o verify.o revoke.o dearmor.o import.o export.o migrate.o delkey.o keygen.o helptext.o keyserver.o call-dirmngr.o photoid.o call-agent.o trust.o trustdb.o tdbdump.o tdbio.o card-util.o exec.o key-check.o ../kbx/libkeybox.a ../common/libcommon.a ../common/libgpgrl.a -lintl -L/usr/local/lib -lgcrypt -lgpg-error -lassuan -L/usr/local/lib -lgpg-error -L/usr/local/lib -lgpg-error /usr/local/lib/libiconv.dll.a -L/usr/local/lib
/usr/local/lib/libgpg-error.a(libgpg_error_la-strsource.o): In function `_gpg_strsource':
/home/john/git/libgpg-error/src/strsource.c:36: undefined reference to `libintl_dgettext'
/home/john/git/libgpg-error/src/strsource.c:36:(.text+0x45): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `libintl_dgettext'
/usr/local/lib/libgpg-error.a(libgpg_error_la-strerror.o): In function `_gpg_strerror_r':
/home/john/git/libgpg-error/src/strerror.c:161: undefined reference to `libintl_dgettext'
/home/john/git/libgpg-error/src/strerror.c:161:(.text+0x2f5): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `libintl_dgettext'
/usr/local/lib/libgpg-error.a(libgpg_error_la-strerror.o): In function `_gpg_strerror':
/home/john/git/libgpg-error/src/strerror.c:50: undefined reference to `libintl_dgettext'
/home/john/git/libgpg-error/src/strerror.c:50:(.text+0xef): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `libintl_dgettext'
collect2: error: ld returned 1 exit status
make[2]: * [Makefile:789: gpg.exe] Error 1
make[2]: Leaving directory '/home/john/git/gnupg/g10'
make[1]:
* [Makefile:614: all-recursive] Error 1
make[1]: Leaving directory '/home/john/git/gnupg'
make: *** [Makefile:534: all] Error 2

$ make check
Making check in m4
make[1]: Entering directory '/home/john/git/gnupg/m4'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/home/john/git/gnupg/m4'
Making check in common
make[1]: Entering directory '/home/john/git/gnupg/common'
make check-am
make[2]: Entering directory '/home/john/git/gnupg/common'
make check-TESTS
make[3]: Entering directory '/home/john/git/gnupg/common'
PASS: t-stringhelp.exe
PASS: t-timestuff.exe
PASS: t-convert.exe
PASS: t-percent.exe
PASS: t-gettime.exe
PASS: t-sysutils.exe
PASS: t-sexputil.exe

> Known envvars: GPG_TTY(ttyname) TERM(ttytype) DISPLAY(display)
> XAUTHORITY(xauthority) XMODIFIERS GTK_IM_MODULE DBUS_SESSION_BUS_ADDRESS
> QT_IM_MODULE INSIDE_EMACS PINENTRY_USER_DATA(pinentry-user-data)

PASS: t-session-env.exe
standard ECC curve missing
FAIL: t-openpgp-oid.exe
t-ssh-utils.c:351: error getting fingerprint for sample key 0: Not operational
FAIL: t-ssh-utils.exe
PASS: t-mapstrings.exe
PASS: t-zb32.exe
PASS: t-mbox-util.exe
PASS: t-iobuf.exe
PASS: t-strlist.exe
PASS: t-name-value.exe
PASS: t-ccparray.exe
PASS: t-recsel.exe
PASS: t-exechelp.exe
error running '/bin/false': exit status 1

PASS: t-exectool.exe

2 of 20 tests failed

Please report to https://bugs.gnupg.org

make[3]: * [Makefile:2701: check-TESTS] Error 1
make[3]: Leaving directory '/home/john/git/gnupg/common'
make[2]:
* [Makefile:2824: check-am] Error 2
make[2]: Leaving directory '/home/john/git/gnupg/common'
make[1]: * [Makefile:2826: check] Error 2
make[1]: Leaving directory '/home/john/git/gnupg/common'
make:
* [Makefile:614: check-recursive] Error 1

Details

Version
5c803728d26e2b765f0e61c3f851b8294f0d8d5f
jd created this task.Jul 7 2018, 5:54 PM
werner triaged this task as Low priority.
werner added a subscriber: werner.

Note that Cygwin is not a supported platform. Seems that the exec functions don't work on this 64 bit variant.

jd added a comment.Jul 8 2018, 12:27 PM

Given that Cygwin is not supported I would understand if the bug is
closed or should I open a feature request to have Cygwin officialy
supported.
I would never the less appriciate any help/hint on how to be successfull
installing "gnupg" on Cygwin.

I will look at the exec function but I'm not sure what is missing in
that function.

P.S. To not waste your time evenmore, if building "gnupg" on Cygwin does
not make sense let me know and close the bug!

Some times I a curious and it seems that GnuPG can be used on 32 bit Cygwin. Thus I wonder what is going on on 64 bit Cygwin (which I don't know). It might be a HANDLE/socket issue where Windows is still using values which fit into a 32 bit integer but Cygwin might have changed that. Eventually we need to remove that assumption in GnuPG's code and this is why I won't have a problem to keep this bug open.