I hit this when running revdep-rebuild.
checking whether guile works... no
configure: error: You need at least guile 1.4.0 to run glame!
Hint: You also need to have the appropriate guile development package
installed, usually called libguile-dev, guile-devel, or similar.
From the config log:
i686-pc-linux-gnu-gcc -o conftest -march=prescott -O2 -Wall -Wno-sign-compare
-D_REENTRANT -pthread conftest.c -lpthread -pthread -lguile -lltdl -lgmp
-lcrypt -lm -lltdl
conftest.c: In function 'main':
conftest.c:96: warning: implicit declaration of function 'gh_floats2fvect'
conftest.c:98: warning: implicit declaration of function 'gh_eval_str'
conftest.c:96: warning: 'd' is used uninitialized in this function
/var/tmp/portage/media-sound/glame-2.0.1/temp/ccArUpf9.o: In function `main':
conftest.c:(.text+0x1d): undefined reference to `gh_floats2fvect'
conftest.c:(.text+0x3d): undefined reference to `gh_eval_str'
collect2: ld returned 1 exit status
configure: failed program was:
| /* confdefs.h. */
(stripped confdefs.h)
| /* end confdefs.h. */
|
| #include <libguile.h>
| #include <guile/gh.h>
|
| int
| main ()
| {
|
| float *d;
| gh_floats2fvect(d, 5);
| scm_make_smob_type("Blah", 50);
| gh_eval_str("(newline)");
| scm_boot_guile(0,NULL,NULL,NULL);
|
| ;
| return 0;
| }
I could reproduce the problem without confdefs.h and with the simple gcc call
gcc -o conftest conftest.c -pthread -lguile
Simply remerging guile doesn't help.
Searching for bugs with "guile" in the summary and "undefined reference" in a
comment I find among others these new bugs which might be related:
bug 163774 about glame-2.0.1 but completely different error message.
bug 163908 about gnome-games mentions deprecated and discouraged USE flags,
but imho include files should be in sync with lib exports no matter what.
And then there is the tracker bug 163921 about guile-1.8.1 incompatible stuff.
Taking the suggestion from bug 163908 I added deprecated and discouraged to the
USE flags and tried again, now everything compiled. deprecated alone seems to
do the trick.
How come the symbols were present in the include files but not in the libs
without those USE flags?