guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Guile 1.8.2 Compile Error [GAH]


From: Kevin Brott
Subject: Re: Guile 1.8.2 Compile Error [GAH]
Date: Tue, 13 Nov 2007 17:29:51 -0800

On Wed, 2007-11-14 at 00:39 +0000, Neil Jerram wrote:
> "Kevin Brott" <address@hidden> writes:
> 
> > Still baffled - but haven't given up yet.
> 
> Going back to your original report... all of the compile errors were
> triggered on lines containing "func_data".  Is it possible that you're
> somehow pulling in a header which #defines func_data to be something
> else (including a .) ?  What happens if you change all occurrences of
> "func_data" to "xxx_func_data" and then build again?
> 
> Also, looking through the thread, I became confused about which gcc
> version / OS combinations exhibit this problem, and which don't.
> Could you give a summary all in one place?
> 
> Regards,
>         Neil
> 

okay - fairly simple (I hope):

AIX 5.2 + gcc 4.2.2 = guile 1.8.3 w/not compile
Ubuntu 7.10 + gcc 4.1.2 = guile 1.8.3 compiles

BUT - when you try to compile the code snips out of hooks.h that the
error refers to - both the Linux and AIX gcc's spew identical errors.

I'm working through the gcc compile line that explodes - and I've found
one thing rather interesting --- the last compile line in
guile-1.8.3/libguile  that explodes is:

gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I/opt/phs/include -D_THREAD_SAFE 
  -O2 -mcpu=power2 -pthread -Wall -Wmissing-prototypes -Werror 
  -MT libguile_la-discouraged.lo -MD -MP -MF deps/libguile_la-discouraged.Tpo 
  -c discouraged.c  -DPIC -o .libs/libguile_la-discouraged.o

Which gives this:
In file included from ../libguile/gc.h:27,
                 from ../libguile.h:73,
                 from discouraged.c:22:
./libguile/hooks.h:43: error: expected ';', ',' or ')' before '.' token
./libguile/hooks.h:48: error: expected specifier-qualifier-list before 
'scm_t_c_hook_function'
./libguile/hooks.h:62: error: expected declaration specifiers or '...' before 
'scm_t_c_hook_function'
./libguile/hooks.h:63: error: expected ';', ',' or ')' before '.' token
./libguile/hooks.h:66: error: expected declaration specifiers or '...' before 
'scm_t_c_hook_function'
./libguile/hooks.h:67: error: expected ';', ',' or ')' before '.' token
gmake[3]: *** [libguile_la-discouraged.lo] Error 1

Now if I cd into libguile and hand-execute that line - without the -I..
elements it compiles without errors.  Which argues that something else
I'm not seeing is being included that is causing the problem.

Code-monkey friend of mine suggested that the problem is with the cpp
output, but when I do this:

  cpp discouraged.c -o foo.c && gcc -c foo.c

I get foo.o and no errors.  Now bear in mind that I'm a C/C++ newb and
that last bit probably means nada.

You sir have hit a nail on the head - at least the compile got past
discouraged.c anyway ...

perl -pi -e 's/func_data/xxx_func_data/g' libguile/hooks.h

gmake clean && gmake ... gets down to:

gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I/opt/phs/include 
-I/opt/freeware/include 
  -D_THREAD_SAFE -g -O2 -Wall -Wmissing-prototypes -Werror -MT 
libguile_la-gc.lo 
  -MD -MP -MF .deps/libguile_la-gc.Tpo -c gc.c  -DPIC -o libs/libguile_la-gc.o

gc.c:974: error: expected ';', ',' or ')' before '.' token
gc.c: In function 'scm_init_gc':
gc.c:1023: error: 'mark_gc_async' undeclared (first use in this function)
gc.c:1023: error: (Each undeclared identifier is reported only once
gc.c:1023: error: for each function it appears in.)
gmake[3]: *** [libguile_la-gc.lo] Error 1

Oh look ! 
gc.c:974:               void *func_data SCM_UNUSED,

more perlfoo on gc.c

gmake clean && gmake ... gets down to:

gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I/opt/phs/include 
-I/opt/freeware/include 
  -D_THREAD_SAFE -g -O2 -Wall -Wmissing-prototypes -Werror -MT 
libguile_la-hooks.lo 
  -MD -MP -MF .deps/libguile_la-hooks.Tpo -c hooks.c  -DPIC -o 
libs/libguile_la-hooks.o
hooks.c:53: error: expected ';', ',' or ')' before '.' token
hooks.c:70: error: expected ';', ',' or ')' before '.' token
gmake[3]: *** [libguile_la-hooks.lo] Error 1

more perlfoo on hooks.c

gmake clean && gmake ... gets down to:

gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I/opt/phs/include 
-I/opt/freeware/include 
  -D_THREAD_SAFE -g -O2 -Wall -Wmissing-prototypes -Werror -MT 
libguile_la-numbers.lo 
  -MD -MP -MF .deps/libguile_la-numbers.Tpo -c numbers.c  -DPIC -o 
libs/libguile_la-numbers.o

cc1: warnings being treated as errors
numbers.c: In function 'guile_ieee_init':
numbers.c:617: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
numbers.c:640: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
numbers.c: In function 'scm_exp':
numbers.c:6081: error: '__I' undeclared (first use in this function)
numbers.c:6081: error: (Each undeclared identifier is reported only once
numbers.c:6081: error: for each function it appears in.)
gmake[3]: *** [libguile_la-numbers.lo] Error 1

Which is :
   6078   if (SCM_COMPLEXP (z))
   6079     {
   6080 #if HAVE_COMPLEX_DOUBLE && HAVE_CEXP
   6081       return scm_from_complex_double (cexp (SCM_COMPLEX_VALUE (z)));
   6082 #else
   6083       return scm_c_make_polar (exp (SCM_COMPLEX_REAL (z)),
   6084                                SCM_COMPLEX_IMAG (z));
   6085 #endif
   6086     }

And I'm stuck again :p

running a 'find' now to see if func_data is showing up somewhere else being 
sneaky.

-- 
#include <stddisclaimer.h>
/* Kevin Brott <address@hidden> 
 * Unix Systems Engineer - SA Group - Provtech
 * Providence Health Systems, Tigard, OR
 */


DISCLAIMER:
This message is intended for the sole use of the addressee, and may contain 
information that is privileged, confidential and exempt from disclosure under 
applicable law. If you are not the addressee you are hereby notified that you 
may not use, copy, disclose, or distribute to anyone the message or any 
information contained in the message. If you have received this message in 
error, please immediately advise the sender by reply email and delete this 
message.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]