[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[guile-reader-devel] Ubuntu build problem scm_take_u8vector
From: |
pelzflorian (Florian Pelz) |
Subject: |
[guile-reader-devel] Ubuntu build problem scm_take_u8vector |
Date: |
Fri, 17 Nov 2017 12:34:51 +0100 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
Hello,
I’m trying to build guile-reader-0.6.2 on my university’s Ubuntu 17.10
system but ./configure fails (from looking at the archives, the same
happens to others).
I’ve downloaded guile-reader from
http://download.savannah.nongnu.org/releases/guile-reader/guile-reader-0.6.2.tar.gz
guile-2.0-* packages are installed.
configure reports
[…]
checking for GUILE... yes
checking for guile-snarf... /usr/bin/guile-snarf
checking for guild... (cached) /usr/bin/guild
checking for Guile site directory... /usr/share/guile/site/2.0
checking for scm_take_u8vector... no
configure: error: You need Guile 1.8.x or higher.
[…]
but objdump says the symbol is exported when running
objdump -T /usr/lib/x86_64-linux-gnu/libguile-2.0.so.22
config.log says
[…]
configure:13913: result: /usr/bin/guile-snarf
configure:13928: checking for guild
configure:13958: result: /usr/bin/guild
configure:13970: checking for Guile site directory
configure:13973: result: /usr/share/guile/site/2.0
configure:13989: checking for scm_take_u8vector
configure:13989: gcc -o conftest -g -O2 -pthread -I/usr/include/guile/2.0
-lguile-2.0 -lgc conftest.c >&5
/tmp/ccIR17gv.o: In function `main':
/tmp/tmp.76tQV34U60/guile-reader-0.6.2/conftest.c:65: undefined reference to
`scm_take_u8vector'
collect2: error: ld returned 1 exit status
configure:13989: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Guile-Reader"
| #define PACKAGE_TARNAME "guile-reader"
| #define PACKAGE_VERSION "0.6.2"
| #define PACKAGE_STRING "Guile-Reader 0.6.2"
| #define PACKAGE_BUGREPORT "address@hidden"
| #define PACKAGE_URL "http://nongnu.org/guile-reader/"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define STDC_HEADERS 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define SIZEOF_VOID_P 8
| #define HAVE_STDLIB_H 1
| #define HAVE_MALLOC 1
| #define HAVE_STDLIB_H 1
| #define HAVE_REALLOC 1
| #define HAVE_STRNCASECMP 1
| /* end confdefs.h. */
| /* Define scm_take_u8vector to an innocuous variant, in case <limits.h>
declares scm_take_u8vector.
| For example, HP-UX 11i <limits.h> declares gettimeofday. */
| #define scm_take_u8vector innocuous_scm_take_u8vector
|
| /* System header to define __stub macros and hopefully few prototypes,
| which can conflict with char scm_take_u8vector (); below.
| Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
| <limits.h> exists even on freestanding compilers. */
|
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
|
| #undef scm_take_u8vector
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char scm_take_u8vector ();
| /* The GNU C library defines this for functions which it implements
| to always fail with ENOSYS. Some functions are actually named
| something starting with __ and the normal name is an alias. */
| #if defined __stub_scm_take_u8vector || defined __stub___scm_take_u8vector
| choke me
| #endif
|
| int
| main ()
| {
| return scm_take_u8vector ();
| ;
| return 0;
| }
configure:13989: result: no
configure:13997: error: You need Guile 1.8.x or higher.
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_c_compiler_gnu=yes
[…]
I copied the C program and tried manually running:
gcc -o conftest -g -O2 -pthread -I/usr/include/guile/2.0 -lguile-2.0 -lgc
conftest.c
It fails with the same error.
I investigated further and read
https://stackoverflow.com/questions/21695744/how-do-i-link-c-code-against-libguile-with-guile-1-8-8
I then ran
gcc -o conftest -g -O2 -pthread -I/usr/include/guile/2.0 conftest.c
-lguile-2.0 -lgc
and it compiles.
I presume the wrong order of gcc arguments stems from an error either
in aclocal.m4 or in gnulib, but I’ve given up on deciphering m4.
<rant>I presume this would not be an issue if Guile would have a
general pkg-config file for all Guile versions because then this check
would be much simpler. And if Guile used a build system like Meson
debugging these things were simpler. But I’m well aware Meson has
issues too.</rant>
Regards,
Florian
signature.asc
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [guile-reader-devel] Ubuntu build problem scm_take_u8vector,
pelzflorian (Florian Pelz) <=