Bug 164514 - media-sound/glame-2.0.1 with dev-scheme/guile-1.8.1-r1 requires "deprecated" USE flag
Bug#: 164514 Product:  Gentoo Linux Version: 2006.1 Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: sound@gentoo.org Reported By: Martin.vGagern@gmx.net
Component: Applications
URL: 
Summary: media-sound/glame-2.0.1 with dev-scheme/guile-1.8.1-r1 requires "deprecated" USE flag
Keywords:  
Status Whiteboard: 
Opened: 2007-01-30 09:50 0000
Description:   Opened: 2007-01-30 09:50 0000
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?

------- Comment #1 From Jakub Moc (RETIRED) 2007-07-15 08:17:24 0000 -------
*** Bug 185383 has been marked as a duplicate of this bug. ***

------- Comment #2 From Samuli Suominen 2007-07-15 19:14:24 0000 -------
"fixed" by adding the built_with_use check.