Discussion:
[OpenIndiana-discuss] Building Filezilla 3.17 and later
russell
2018-03-04 19:11:57 UTC
Permalink
Hi,

In order to build Filezilla 3.17 and later I need to build an up to date
version of GNUTLS, after some effort I have almost build gnutls v3.5.18
and v3.6.2.

The problem I found earlier with the dsa structure definition was due to
the fact I was using the system NETTLE v3.3 library, after compiling
Nettle v3.4 then the dsa structure problem building gnutls disappeared.

Nettle v3.4 was successfully built using

$ CC=gcc-6 CXX=g++-6 CFLAGS="-I/usr/include/gmp" ./configure
--prefix=/opt/gnu

Unbound v1.6.8 required for Gnutls was successfully built using

$ CC=gcc-6 ./configure --prefix=/opt/gnu


Both Gnutls v3.5.18 and v3.6.2 both can almost be successfuly built using

$ CC=gcc-6  CXX=g++-6 CFLAGS="-I/usr/include/idn -I/usr/include/idn2"
LDFLAGS="-L/opt/gnu/lib -L/usr/lib"
NETTLE_CFLAGS="-I/opt/gnu/include/nettle"
HOGWEED_CFLAGS="-I/opt/gnu/include/nettle" NETTLE_LIBS=-L/opt/gnu/lib
HOGWEED_LIBS=-L/opt/gnu/lib ./configure --prefix=/opt/gnu
--enable-openssl-compatibility --disable-ssl2-support --enable-tests

In both cases the final element of the compilation fails in a similar way

copying selected object files to avoid basename conflicts...

  CC       psk.o
  CCLD     psktool
Undefined                       first referenced
 symbol                             in file
nettle_pbkdf2_hmac_sha1             ../lib/.libs/libgnutls.so
nettle_aes192_set_decrypt_key       ../lib/.libs/libgnutls.so
nettle_aes192_set_encrypt_key       ../lib/.libs/libgnutls.so
nettle_gcm_camellia256_digest       ../lib/.libs/libgnutls.so
nettle_gcm_camellia128_digest       ../lib/.libs/libgnutls.so
nettle_pbkdf2_hmac_sha256           ../lib/.libs/libgnutls.so
nettle_arctwo40_set_key             ../lib/.libs/libgnutls.so
nettle_aes128_set_decrypt_key       ../lib/.libs/libgnutls.so
nettle_aes128_set_encrypt_key       ../lib/.libs/libgnutls.so
nettle_rsa_pkcs1_sign_tr            ../lib/.libs/libgnutls.so
nettle_ecc_scalar_set               ../lib/.libs/libgnutls.so
nettle_ecc_scalar_get               ../lib/.libs/libgnutls.so
nettle_sha3_224_init                ../lib/.libs/libgnutls.so
nettle_sha512_digest                ../lib/.libs/libgnutls.so
nettle_sha384_digest                ../lib/.libs/libgnutls.so
nettle_sha224_digest                ../lib/.libs/libgnutls.so
nettle_sha256_digest                ../lib/.libs/libgnutls.so
nettle_umac96_set_key               ../lib/.libs/libgnutls.so
nettle_sha3_512_init                ../lib/.libs/libgnutls.so
nettle_curve25519_mul_g             ../lib/.libs/libgnutls.so
nettle_hmac_sha1_set_key            ../lib/.libs/libgnutls.so
nettle_camellia128_crypt            ../lib/.libs/libgnutls.so
nettle_mpz_random_size              ../lib/.libs/libgnutls.so
nettle_salsa20_crypt                ../lib/.libs/libgnutls.so
nettle_ed25519_sha512_verify        ../lib/.libs/libgnutls.so
nettle_mpz_set_str_256_s            ../lib/.libs/libgnutls.so
nettle_mpz_set_str_256_u            ../lib/.libs/libgnutls.so
nettle_gcm_camellia256_set_key      ../lib/.libs/libgnutls.so
nettle_gcm_camellia128_set_key      ../lib/.libs/libgnutls.so
nettle_hmac_md5_set_key             ../lib/.libs/libgnutls.so
nettle_base64_encode_raw            ../lib/.libs/libgnutls.so
nettle_dsa_signature_clear          ../lib/.libs/libgnutls.so
nettle_ecc_size                     ../lib/.libs/libgnutls.so
nettle_rsa_pkcs1_verify             ../lib/.libs/libgnutls.so
nettle_rsa_private_key_init         ../lib/.libs/libgnutls.so
nettle_dsa_sign                     ../lib/.libs/libgnutls.so
nettle_memxor                       ../lib/.libs/libgnutls.so
nettle_rsa_public_key_init          ../lib/.libs/libgnutls.so
nettle_gcm_camellia256_set_iv       ../lib/.libs/libgnutls.so
nettle_gcm_camellia128_set_iv       ../lib/.libs/libgnutls.so
nettle_gcm_camellia128_update       ../lib/.libs/libgnutls.so
nettle_gcm_camellia256_update       ../lib/.libs/libgnutls.so
nettle_chacha_set_nonce             ../lib/.libs/libgnutls.so
nettle_rsa_private_key_prepare      ../lib/.libs/libgnutls.so
nettle_sha512_update                ../lib/.libs/libgnutls.so
nettle_sha256_update                ../lib/.libs/libgnutls.so
nettle_rsa_pss_sha512_verify_digest ../lib/.libs/libgnutls.so
nettle_rsa_pss_sha384_verify_digest ../lib/.libs/libgnutls.so
nettle_rsa_pss_sha256_verify_digest ../lib/.libs/libgnutls.so
nettle_base64_decode_init           ../lib/.libs/libgnutls.so
nettle_hmac_sha256_set_key          ../lib/.libs/libgnutls.so
nettle_hmac_sha224_set_key          ../lib/.libs/libgnutls.so
nettle_hmac_sha384_set_key          ../lib/.libs/libgnutls.so
nettle_hmac_sha512_set_key          ../lib/.libs/libgnutls.so
nettle_ecc_scalar_clear             ../lib/.libs/libgnutls.so
nettle_md2_update                   ../lib/.libs/libgnutls.so
nettle_md5_update                   ../lib/.libs/libgnutls.so
nettle_dsa_verify                   ../lib/.libs/libgnutls.so
nettle_umac128_set_nonce            ../lib/.libs/libgnutls.so
nettle_mpz_random                   ../lib/.libs/libgnutls.so
nettle_arcfour_crypt                ../lib/.libs/libgnutls.so
nettle_ecc_size_a                   ../lib/.libs/libgnutls.so
nettle_gcm_decrypt                  ../lib/.libs/libgnutls.so
nettle_des_decrypt                  ../lib/.libs/libgnutls.so
nettle_cbc_decrypt                  ../lib/.libs/libgnutls.so
nettle_gcm_aes128_set_key           ../lib/.libs/libgnutls.so
nettle_gcm_aes256_set_key           ../lib/.libs/libgnutls.so
nettle_arcfour128_set_key           ../lib/.libs/libgnutls.so
nettle_camellia256_set_encrypt_key  ../lib/.libs/libgnutls.so
nettle_camellia256_set_decrypt_key  ../lib/.libs/libgnutls.so
nettle_chacha_poly1305_set_key      ../lib/.libs/libgnutls.so
nettle_umac128_set_key              ../lib/.libs/libgnutls.so
nettle_dsa_generate_params          ../lib/.libs/libgnutls.so
nettle_sha384_init                  ../lib/.libs/libgnutls.so
nettle_dsa_signature_init           ../lib/.libs/libgnutls.so
nettle_camellia192_set_encrypt_key  ../lib/.libs/libgnutls.so
nettle_camellia192_set_decrypt_key  ../lib/.libs/libgnutls.so
nettle_gcm_encrypt                  ../lib/.libs/libgnutls.so
nettle_des_encrypt                  ../lib/.libs/libgnutls.so
nettle_cbc_encrypt                  ../lib/.libs/libgnutls.so
nettle_rsa_encrypt                  ../lib/.libs/libgnutls.so
nettle_chacha_poly1305_decrypt      ../lib/.libs/libgnutls.so
nettle_sha256_init                  ../lib/.libs/libgnutls.so
nettle_camellia128_set_encrypt_key  ../lib/.libs/libgnutls.so
nettle_ecdsa_generate_keypair       ../lib/.libs/libgnutls.so
nettle_md2_digest                   ../lib/.libs/libgnutls.so
nettle_md5_digest                   ../lib/.libs/libgnutls.so
nettle_camellia256_crypt            ../lib/.libs/libgnutls.so
nettle_ecdsa_verify                 ../lib/.libs/libgnutls.so
nettle_des_set_key                  ../lib/.libs/libgnutls.so
nettle_ecc_point_init               ../lib/.libs/libgnutls.so
nettle_chacha_crypt                 ../lib/.libs/libgnutls.so
nettle_salsa20_256_set_key          ../lib/.libs/libgnutls.so
nettle_chacha_poly1305_encrypt      ../lib/.libs/libgnutls.so
nettle_des3_set_key                 ../lib/.libs/libgnutls.so
nettle_secp_384r1                   ../lib/.libs/libgnutls.so
nettle_secp_192r1                   ../lib/.libs/libgnutls.so
nettle_secp_224r1                   ../lib/.libs/libgnutls.so
nettle_secp_256r1                   ../lib/.libs/libgnutls.so
nettle_secp_521r1                   ../lib/.libs/libgnutls.so
nettle_sha1_update                  ../lib/.libs/libgnutls.so
nettle_hmac_md5_digest              ../lib/.libs/libgnutls.so
nettle_arctwo_encrypt               ../lib/.libs/libgnutls.so
nettle_sha3_512_update              ../lib/.libs/libgnutls.so
nettle_sha3_256_update              ../lib/.libs/libgnutls.so
nettle_sha3_224_update              ../lib/.libs/libgnutls.so
nettle_sha3_384_update              ../lib/.libs/libgnutls.so
nettle_ecc_point_get                ../lib/.libs/libgnutls.so
nettle_ecc_point_set                ../lib/.libs/libgnutls.so
nettle_ecc_point_mul                ../lib/.libs/libgnutls.so
nettle_arctwo_decrypt               ../lib/.libs/libgnutls.so
nettle_rsa_private_key_clear        ../lib/.libs/libgnutls.so
nettle_sha3_512_digest              ../lib/.libs/libgnutls.so
nettle_sha3_384_digest              ../lib/.libs/libgnutls.so
nettle_sha3_256_digest              ../lib/.libs/libgnutls.so
nettle_sha3_224_digest              ../lib/.libs/libgnutls.so
nettle_rsa_public_key_prepare       ../lib/.libs/libgnutls.so
nettle_sha512_init                  ../lib/.libs/libgnutls.so
nettle_hmac_md5_update              ../lib/.libs/libgnutls.so
nettle_dsa_params_init              ../lib/.libs/libgnutls.so
nettle_des3_encrypt                 ../lib/.libs/libgnutls.so
nettle_arcfour_set_key              ../lib/.libs/libgnutls.so
nettle_sha1_digest                  ../lib/.libs/libgnutls.so
nettle_camellia_set_decrypt_key     ../lib/.libs/libgnutls.so
nettle_ecdsa_sign                   ../lib/.libs/libgnutls.so
nettle_sha224_init                  ../lib/.libs/libgnutls.so
nettle_des3_decrypt                 ../lib/.libs/libgnutls.so
nettle_chacha_set_key               ../lib/.libs/libgnutls.so
nettle_ed25519_sha512_public_key    ../lib/.libs/libgnutls.so
nettle_md5_init                     ../lib/.libs/libgnutls.so
nettle_ecc_scalar_init              ../lib/.libs/libgnutls.so
nettle_ccm_encrypt_message          ../lib/.libs/libgnutls.so
nettle_ccm_decrypt_message          ../lib/.libs/libgnutls.so
nettle_gcm_aes128_digest            ../lib/.libs/libgnutls.so
nettle_gcm_aes256_digest            ../lib/.libs/libgnutls.so
nettle_base64_decode_final          ../lib/.libs/libgnutls.so
nettle_md2_init                     ../lib/.libs/libgnutls.so
nettle_rsa_decrypt_tr               ../lib/.libs/libgnutls.so
nettle_umac96_digest                ../lib/.libs/libgnutls.so
nettle_chacha_poly1305_set_nonce    ../lib/.libs/libgnutls.so
nettle_hmac_sha1_update             ../lib/.libs/libgnutls.so
nettle_chacha_poly1305_digest       ../lib/.libs/libgnutls.so
nettle_umac128_digest               ../lib/.libs/libgnutls.so
nettle_aes128_decrypt               ../lib/.libs/libgnutls.so
nettle_aes192_decrypt               ../lib/.libs/libgnutls.so
nettle_aes256_decrypt               ../lib/.libs/libgnutls.so
nettle_hmac_sha224_digest           ../lib/.libs/libgnutls.so
nettle_hmac_sha256_digest           ../lib/.libs/libgnutls.so
nettle_hmac_sha384_digest           ../lib/.libs/libgnutls.so
nettle_hmac_sha512_digest           ../lib/.libs/libgnutls.so
nettle_aes128_encrypt               ../lib/.libs/libgnutls.so
nettle_aes192_encrypt               ../lib/.libs/libgnutls.so
nettle_aes256_encrypt               ../lib/.libs/libgnutls.so
nettle_dsa_params_clear             ../lib/.libs/libgnutls.so
nettle_sha3_256_init                ../lib/.libs/libgnutls.so
nettle_salsa20r12_crypt             ../lib/.libs/libgnutls.so
nettle_umac128_update               ../lib/.libs/libgnutls.so
nettle_chacha_poly1305_update       ../lib/.libs/libgnutls.so
nettle_ecc_point_clear              ../lib/.libs/libgnutls.so
nettle_hmac_sha256_update           ../lib/.libs/libgnutls.so
nettle_hmac_sha512_update           ../lib/.libs/libgnutls.so
nettle_hmac_sha1_digest             ../lib/.libs/libgnutls.so
nettle_ecc_point_mul_g              ../lib/.libs/libgnutls.so
nettle_umac96_update                ../lib/.libs/libgnutls.so
nettle_umac96_set_nonce             ../lib/.libs/libgnutls.so
nettle_mpz_sizeinbase_256_s         ../lib/.libs/libgnutls.so
nettle_mpz_sizeinbase_256_u         ../lib/.libs/libgnutls.so
nettle_sha3_384_init                ../lib/.libs/libgnutls.so
nettle_ed25519_sha512_sign          ../lib/.libs/libgnutls.so
nettle_gcm_aes256_update            ../lib/.libs/libgnutls.so
nettle_gcm_aes128_update            ../lib/.libs/libgnutls.so
nettle_rsa_pss_sha512_sign_digest_tr ../lib/.libs/libgnutls.so
nettle_rsa_public_key_clear         ../lib/.libs/libgnutls.so
nettle_aes256_set_decrypt_key       ../lib/.libs/libgnutls.so
nettle_aes256_set_encrypt_key       ../lib/.libs/libgnutls.so
nettle_gcm_aes128_set_iv            ../lib/.libs/libgnutls.so
nettle_gcm_aes256_set_iv            ../lib/.libs/libgnutls.so
nettle_base64_decode_update         ../lib/.libs/libgnutls.so
nettle_sha1_init                    ../lib/.libs/libgnutls.so
nettle_curve25519_mul               ../lib/.libs/libgnutls.so
nettle_rsa_pss_sha384_sign_digest_tr ../lib/.libs/libgnutls.so
nettle_rsa_generate_keypair         ../lib/.libs/libgnutls.so
nettle_mpz_get_str_256              ../lib/.libs/libgnutls.so
nettle_rsa_pss_sha256_sign_digest_tr ../lib/.libs/libgnutls.so
ld: fatal: symbol referencing errors. No output written to .libs/psktool
collect2: error: ld returned 1 exit status
gmake[4]: *** [Makefile:1893: psktool] Error 1
gmake[4]: Leaving directory '/tmp/gnutls-3.6.2/src'
gmake[3]: *** [Makefile:1985: all-recursive] Error 1
gmake[3]: Leaving directory '/tmp/gnutls-3.6.2/src'
gmake[2]: *** [Makefile:1727: all] Error 2
gmake[2]: Leaving directory '/tmp/gnutls-3.6.2/src'
gmake[1]: *** [Makefile:1460: all-recursive] Error 1
gmake[1]: Leaving directory '/tmp/gnutls-3.6.2'
gmake: *** [Makefile:1388: all] Error 2

Any suggestions for completing the build.


Regards


Russell
Alan Coopersmith
2018-03-04 20:47:44 UTC
Permalink
Post by russell
Both Gnutls v3.5.18 and v3.6.2 both can almost be successfuly built using
$ CC=gcc-6  CXX=g++-6 CFLAGS="-I/usr/include/idn -I/usr/include/idn2"
LDFLAGS="-L/opt/gnu/lib -L/usr/lib" NETTLE_CFLAGS="-I/opt/gnu/include/nettle"
HOGWEED_CFLAGS="-I/opt/gnu/include/nettle" NETTLE_LIBS=-L/opt/gnu/lib
HOGWEED_LIBS=-L/opt/gnu/lib ./configure --prefix=/opt/gnu
--enable-openssl-compatibility --disable-ssl2-support --enable-tests
When you're using *_LIBS to override the pkg-config provided flags you need
to include the -l flags that pkg-config would give you, not just the -L ones,
so for instance, the above should probably be:
NETTLE_LIBS="-L/opt/gnu/lib -R/opt/gnu/lib -lnettle"
(including the -R to find the library at runtime outside the normal library
path).

Or if the nettle.pc file is installed under /opt/gnu/lib/pkgconfig, then you
may just be able to replace much of the above with:
PKG_CONFIG_PATH=/opt/gnu/lib/pkgconfig

-alan-
russell
2018-03-05 18:53:20 UTC
Permalink
Hi,

Thanks for the feedback, I finally used the following command for
v3.5.18 and v3.6.2 to allow the build to go further, unfortunately it
started reporting issues with Guile.

$ CC=gcc-6  CXX=g++-6 CFLAGS="-I/usr/include/idn -I/usr/include/idn2"
LDFLAGS="-L/opt/gnu/lib -L/usr/lib"
PKG_CONFIG_PATH=/opt/gnu/lib/pkgconfig ./configure --prefix=/opt/gnu
--enable-openssl-compatibility --disable-ssl2-support

Checking the Guile site the legacy version which is 2.0.X and the
current release 2.2.0 so I attempted to build the 2.2.0 release, however
this fails almost immediately as shown

$ CC=gcc-6 CXX=g++-6 LDFLAGS="-L/opt/gnu/lib -L/usr/lib" ./configure
--prefix=/opt/gnu
$ gmake
gmake -C libguile scmconfig.h
gmake[1]: Entering directory '/tmp/guile-2.2.0/libguile'
  GEN      gen-scmconfig.o
  GEN      gen-scmconfig
  GEN      scmconfig.h
gmake[1]: Leaving directory '/tmp/guile-2.2.0/libguile'
gmake  all-recursive
gmake[1]: Entering directory '/tmp/guile-2.2.0'
Making all in lib
gmake[2]: Entering directory '/tmp/guile-2.2.0/lib'
  GEN      alloca.h
  GEN      c++defs.h
  GEN      warn-on-use.h
  GEN      arg-nonnull.h
  GEN      arpa/inet.h
  GEN      byteswap.h
  GEN      configmake.h
  GEN      dirent.h
  GEN      fcntl.h
  GEN      iconv.h
  GEN      langinfo.h
  GEN      limits.h
  GEN      locale.h
  GEN      math.h
  GEN      netdb.h
  GEN      poll.h
  GEN      signal.h
  GEN      stdint.h
  GEN      stdio.h
  GEN      stdlib.h
  GEN      string.h
  GEN      sys/file.h
  GEN      sys/select.h
  GEN      sys/socket.h
  GEN      sys/stat.h
  GEN      sys/time.h
  GEN      sys/times.h
  GEN      sys/types.h
  GEN      sys/uio.h
  GEN      time.h
  GEN      unistd.h
  GEN      wchar.h
  GEN      wctype.h
gmake  all-recursive
gmake[3]: Entering directory '/tmp/guile-2.2.0/lib'
gmake[4]: Entering directory '/tmp/guile-2.2.0/lib'
  CC       accept4.lo
In file included from /usr/include/sys/time.h:462:0,
                 from ./sys/time.h:39,
                 from /usr/include/sys/select.h:53,
                 from ./sys/select.h:36,
                 from /usr/include/sys/types.h:640,
                 from ./sys/types.h:28,
                 from ./sys/socket.h:51,
                 from accept4.c:20:
./sys/socket.h:1034:1: error: conflicting types for 'accept4'
 _GL_FUNCDECL_SYS (accept4, int,
 ^
In file included from ./sys/socket.h:58:0,
                 from accept4.c:20:
/usr/include/sys/socket.h:540:12: note: previous declaration of
'accept4' was here
 extern int accept4(int, struct sockaddr *_RESTRICT_KYWD, Psocklen_t, int);
            ^~~~~~~
accept4.c:32:1: error: conflicting types for 'accept4'
 accept4 (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)
 ^~~~~~~
In file included from ./sys/socket.h:58:0,
                 from accept4.c:20:
/usr/include/sys/socket.h:540:12: note: previous declaration of
'accept4' was here
 extern int accept4(int, struct sockaddr *_RESTRICT_KYWD, Psocklen_t, int);
            ^~~~~~~
gmake[4]: *** [Makefile:2068: accept4.lo] Error 1
gmake[4]: Leaving directory '/tmp/guile-2.2.0/lib'
gmake[3]: *** [Makefile:2087: all-recursive] Error 1
gmake[3]: Leaving directory '/tmp/guile-2.2.0/lib'
gmake[2]: *** [Makefile:1869: all] Error 2
gmake[2]: Leaving directory '/tmp/guile-2.2.0/lib'
gmake[1]: *** [Makefile:1857: all-recursive] Error 1
gmake[1]: Leaving directory '/tmp/guile-2.2.0'
gmake: *** [Makefile:1743: all] Error 2

Any suggestions on how to fix this problem?

TIA

Russell
Post by Alan Coopersmith
Post by russell
Both Gnutls v3.5.18 and v3.6.2 both can almost be successfuly built using
$ CC=gcc-6  CXX=g++-6 CFLAGS="-I/usr/include/idn -I/usr/include/idn2"
LDFLAGS="-L/opt/gnu/lib -L/usr/lib" NETTLE_CFLAGS="-I/opt/gnu/include/nettle"
HOGWEED_CFLAGS="-I/opt/gnu/include/nettle" NETTLE_LIBS=-L/opt/gnu/lib
HOGWEED_LIBS=-L/opt/gnu/lib ./configure --prefix=/opt/gnu
--enable-openssl-compatibility --disable-ssl2-support --enable-tests
When you're using *_LIBS to override the pkg-config provided flags you need
to include the -l flags that pkg-config would give you, not just the -L ones,
NETTLE_LIBS="-L/opt/gnu/lib -R/opt/gnu/lib -lnettle"
(including the -R to find the library at runtime outside the normal library
path).
Or if the nettle.pc file is installed under /opt/gnu/lib/pkgconfig, then you
PKG_CONFIG_PATH=/opt/gnu/lib/pkgconfig
-alan-
Alexander Pyhalov
2018-03-06 08:34:18 UTC
Permalink
Post by russell
Hi,
Thanks for the feedback, I finally used the following command for
v3.5.18 and v3.6.2 to allow the build to go further, unfortunately it
started reporting issues with Guile.
$ CC=gcc-6  CXX=g++-6 CFLAGS="-I/usr/include/idn -I/usr/include/idn2"
LDFLAGS="-L/opt/gnu/lib -L/usr/lib"
PKG_CONFIG_PATH=/opt/gnu/lib/pkgconfig ./configure --prefix=/opt/gnu
--enable-openssl-compatibility --disable-ssl2-support
Checking the Guile site the legacy version which is 2.0.X and the
current release 2.2.0 so I attempted to build the 2.2.0 release, however
this fails almost immediately as shown
$ CC=gcc-6 CXX=g++-6 LDFLAGS="-L/opt/gnu/lib -L/usr/lib" ./configure
--prefix=/opt/gnu
$ gmake
gmake -C libguile scmconfig.h
gmake[1]: Entering directory '/tmp/guile-2.2.0/libguile'
  GEN      gen-scmconfig.o
  GEN      gen-scmconfig
  GEN      scmconfig.h
gmake[1]: Leaving directory '/tmp/guile-2.2.0/libguile'
gmake  all-recursive
gmake[1]: Entering directory '/tmp/guile-2.2.0'
Making all in lib
gmake[2]: Entering directory '/tmp/guile-2.2.0/lib'
  GEN      alloca.h
  GEN      c++defs.h
  GEN      warn-on-use.h
  GEN      arg-nonnull.h
  GEN      arpa/inet.h
  GEN      byteswap.h
  GEN      configmake.h
  GEN      dirent.h
  GEN      fcntl.h
  GEN      iconv.h
  GEN      langinfo.h
  GEN      limits.h
  GEN      locale.h
  GEN      math.h
  GEN      netdb.h
  GEN      poll.h
  GEN      signal.h
  GEN      stdint.h
  GEN      stdio.h
  GEN      stdlib.h
  GEN      string.h
  GEN      sys/file.h
  GEN      sys/select.h
  GEN      sys/socket.h
  GEN      sys/stat.h
  GEN      sys/time.h
  GEN      sys/times.h
  GEN      sys/types.h
  GEN      sys/uio.h
  GEN      time.h
  GEN      unistd.h
  GEN      wchar.h
  GEN      wctype.h
gmake  all-recursive
gmake[3]: Entering directory '/tmp/guile-2.2.0/lib'
gmake[4]: Entering directory '/tmp/guile-2.2.0/lib'
  CC       accept4.lo
In file included from /usr/include/sys/time.h:462:0,
                 from ./sys/time.h:39,
                 from /usr/include/sys/select.h:53,
                 from ./sys/select.h:36,
                 from /usr/include/sys/types.h:640,
                 from ./sys/types.h:28,
                 from ./sys/socket.h:51,
./sys/socket.h:1034:1: error: conflicting types for 'accept4'
 _GL_FUNCDECL_SYS (accept4, int,
 ^
In file included from ./sys/socket.h:58:0,
/usr/include/sys/socket.h:540:12: note: previous declaration of
'accept4' was here
 extern int accept4(int, struct sockaddr *_RESTRICT_KYWD, Psocklen_t, int);
            ^~~~~~~
accept4.c:32:1: error: conflicting types for 'accept4'
 accept4 (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)
 ^~~~~~~
In file included from ./sys/socket.h:58:0,
/usr/include/sys/socket.h:540:12: note: previous declaration of
'accept4' was here
 extern int accept4(int, struct sockaddr *_RESTRICT_KYWD, Psocklen_t, int);
            ^~~~~~~
Hi.
It seems that guile doesn't detect that we have accept4() at configure
stage and tries to build its own implementation. It should be taught to
avoid doing so.
--
Best regards,
Alexander Pyhalov,
system administrator of Southern Federal University IT department
Alexander Pyhalov
2018-03-05 08:15:52 UTC
Permalink
Post by russell
Hi,
In order to build Filezilla 3.17 and later I need to build an up to date
version of GNUTLS, after some effort I have almost build gnutls v3.5.18
and v3.6.2.
The problem I found earlier with the dsa structure definition was due to
the fact I was using the system NETTLE v3.3 library, after compiling
Nettle v3.4 then the dsa structure problem building gnutls disappeared.
Hi.

We deliver GNU TLS 3.5.14. We use the following in oi-userland Makefiles
to use it -

# Force use of gnutls-3 pkgconfig during 2.x->3.x transition
GNUTLS_PKG_CONFIG_PATH_32 = /usr/lib/pkgconfig/gnutls-3
GNUTLS_PKG_CONFIG_PATH_64 = /usr/lib/$(MACH64)/pkgconfig/gnutls-3
PKG_CONFIG_PATH =
$(GNUTLS_PKG_CONFIG_PATH_$(BITS)):$(PKG_CONFIG_PATH.$(BITS))

LD_OPTIONS.32 += -L/usr/lib/gnutls-3 -R/usr/lib/gnutls-3
LD_OPTIONS.64 += -L/usr/lib/$(MACH64)/gnutls-3 -R/usr/lib/$(MACH64)/gnutls-3
LD_OPTIONS += $(LD_OPTIONS.$(BITS))


This efficiently sets PKG_CONFIG_PATH to
/usr/lib/pkgconfig/gnutls-3:/usr/lib/pkgconfig (for 32-bit software) and
LD_OPTIONS to -L/usr/lib/gnutls-3 -R/usr/lib/gnutls-3 .
--
Best regards,
Alexander Pyhalov,
system administrator of Southern Federal University IT department
Loading...