mighty-gerbils / gerbil

Gerbil Scheme
https://cons.io
GNU Lesser General Public License v2.1
1.16k stars 112 forks source link

Mx-linux (debian-sysVinit), compilation of gerbil fails with #1031

Open devosalain opened 1 year ago

devosalain commented 1 year ago

make -j10 fails with


... compile xml
... copy static include to target directory crypto/libcrypto-rfc5114.c
... copy static include crypto/libcrypto-rfc5114.c
... compile crypto/libcrypto
... compile net/ssl/libssl
libssl__0.c: In function ‘ffi_ssl_error’:
libssl__0.c:693:4: error: a label can only be part of a statement and a declaration is not a statement
  693 |    ___processor_state ___ps = ___GET_PSTATE();
      |    ^~~~~~~~~~~~~~~~~~
In file included from libssl__0.c:120:
/home/x/Dirs/gerbil/build/include/gambit.h:1121:16: error: expected expression before ‘long’
 1121 | #define ___S64 long
      |                ^~~~
/home/x/Dirs/gerbil/build/include/gambit.h:2211:17: note: in expansion of macro ‘___S64’
 2211 | #define ___WORD ___S64
      |                 ^~~~~~
/home/x/Dirs/gerbil/build/include/gambit.h:2225:19: note: in expansion of macro ‘___WORD’
 2225 | #define ___SCMOBJ ___WORD
      |                   ^~~~~~~
libssl__0.c:694:4: note: in expansion of macro ‘___SCMOBJ’
  694 |    ___SCMOBJ result = ___make_pair(___ps, ___FIX(last), ___NUL);
      |    ^~~~~~~~~
libssl__0.c:695:22: error: ‘result’ undeclared (first use in this function)
  695 |    ___release_scmobj(result);
      |                      ^~~~~~
libssl__0.c:695:22: note: each undeclared identifier is reported only once for each function it appears in
"/home/x/Dirs/gerbil/build/bin/gsc"
*** Unhandled exception in #<thread #13600>

*** ERROR IN ?
--- Syntax Error at compile: Compilation error; process exit with nonzero status
... form:   Continuation backtrace: 
0  gxc#gsc-compile-file                                                               
1  gxc#compile-scm-file__%                                                            
2  gxc#compile-runtime-code                                                           
3  gxc#compile-runtime-code                                                           
*** ERROR IN #:loop97402, "misc/concurrent-plan.ss"@88.7 -- Build Failure at (gxc net/ssl/libssl -ld-options -lssl)

*** ERROR IN ?
--- Syntax Error at compile: Compilation error; process exit with nonzero status
... form:   "/home/x/Dirs/gerbil/build/bin/gsc"
*** ERROR; build failed
build failed
make: *** [Makefile:4: build] Error 1

apt list --installed | grep openssl

returns


bruteforce-salted-openssl/oldstable,now 1.4.2-3 amd64 [installed]
dlang-openssl/oldstable,oldstable,now 2.0.0+1.1.0h-0.2 all [installed]
gambas3-gb-openssl/oldstable,now 3.15.2-1 amd64 [installed]
libcrypt-openssl-bignum-perl/oldstable,now 0.09-1+b3 amd64 [installed]
libcrypt-openssl-dsa-perl/oldstable,now 0.19-2 amd64 [installed]
libcrypt-openssl-ec-perl/oldstable,now 1.32-1+b1 amd64 [installed]
libcrypt-openssl-pkcs10-perl/oldstable,now 0.16-3+b3 amd64 [installed]
libcrypt-openssl-pkcs12-perl/oldstable,now 1.3-1+b1 amd64 [installed]
libcrypt-openssl-random-perl/oldstable,now 0.15-2+b1 amd64 [installed,automatic]
libcrypt-openssl-rsa-perl/oldstable,now 0.31-1+b3 amd64 [installed,automatic]
libcrypt-openssl-x509-perl/oldstable,now 1.9.02-1 amd64 [installed]
libcurl4-openssl-dev/oldstable-security,now 7.74.0-1.3+deb11u10 amd64 [installed]
libevent-openssl-2.1-7/oldstable,now 2.1.12-stable-1 amd64 [installed,automatic]
libgnutls-openssl27/oldstable,oldstable-security,now 3.7.1-5+deb11u3 amd64 [installed,automatic]
libxmlsec1-openssl/oldstable,now 1.2.31-1 amd64 [installed,automatic]
openssl/oldstable,now 1.1.1w-0+deb11u1 amd64 [installed]
perl-openssl-defaults/oldstable,now 5 amd64 [installed,automatic]
vyzo commented 1 year ago

This seems to be a compiler configuration issue.

We had the same issue in netbsd and was resolved by compiling with a newer gcc.

devosalain commented 1 year ago

Sidenote , it compiles fine on freebsd & artix-linux(arch-openrc). So which compiler is advised ? clang , gcc , which version should i try ? Do i set an environment variable or do i give make a flag ?

vyzo commented 1 year ago

gcc is stronly recommended, >=11

vyzo commented 1 year ago

Also check the compiler default flags, maybe use lates gnu standard flags?

devosalain commented 1 year ago

mx linux default to gcc-10. I must check for gcc-11.

chiefnoah commented 1 year ago

Are you sure you don't also need to install libssl-dev to get the development headers?

devosalain commented 1 year ago

already installed. libssl-dev/oldstable,now 1.1.1w-0+deb11u1 amd64 [installed] libssl-doc/oldstable,oldstable,now 1.1.1w-0+deb11u1 all [installed] libssl-ocaml-dev/oldstable,now 0.5.9-2+b1 amd64 [installed] libssl-ocaml/oldstable,now 0.5.9-2+b1 amd64 [installed] libssl-utils-clojure/oldstable,oldstable,now 3.1.0-4 all [installed] libssl1.1/oldstable,now 1.1.1w-0+deb11u1 amd64 [installed]

vyzo commented 1 year ago

We need ssl3, ssl1.1.1 is EOL.