Build issues while jhautobuilding



Hi all,

I'm building on Solaris, and have hit the following issues:

1) Determining CFLAGS:
http://jhbuild.bxlug.be/builds/2006-12-06-0010/logs/pygobject/#build
Sun's cc doesn't understand -std=c9x and

http://jhbuild.bxlug.be/builds/2006-12-10-0021/logs/glib/#configure
gcc on sparc needs -pthreads, not -pthread

Basically the problem is the compilers (gcc and Sun's cc) are returning
0 even when passed invalid arguments, and only complain on stderr. This
breaks AC_TRY_COMPILE which only looks at the return value. Does anyone
have any suggestions on how I can fix this, or is writing an autoconf
macro that checks stderr the only solution?

The first is more a cosmetic problem, but it can hide the actual error.

2) libintl #define fun
http://jhbuild.bxlug.be/builds/2006-12-19-0004/logs/gtk+/#build

The gettext libintl.h #defines its functions from fname to libintl_fname to
avoid conflicting with the ones from libc. However, my CPPFLAGS doesn't
explicitly include the build-output/include directory, so gtk+ (thanks to
fontconfig's pkg-config --cflags) does include the jhbuilt gettext's
libintl.h, causing its functions to be munged. Then when it comes to
linking, -lintl isn't specified, so the functions aren't found (as the
jhbuilt libintl has to be explicitly linked for the munged functions to be
found).

So I'm trying to work out whose fault it is - gtk+ for not checking if it
needs -lintl; gettext's autoconf for not doing the check for -lintl with
munged functions; mine, for not adding -I/path/to/build-output/include to my
CFLAGS; or mine, for trying to use non-native gettext (although I'm pretty
sure GNOME needs GNU gettext.

3) orbit-idl-2 failure
http://jhbuild.bxlug.be/builds/2006-12-19-0004/logs/libbonobo/#build

With debugging on, the failure is:
cc: Fatal error in /opt/SUNWspro/prod/bin/acomp : Broken Pipe

Using truss (solaris's strace) gives the following output (12283 is the
parent cc process, 12288 is acomp, which I think is the sun cc's CPP -
they're connected by a pipe, which is fd1 for 12288 and fd3 for 12283):

12288:  write(1, " x ) ;\n\n  \t\t  \n #  ".., 5120)    = 5120
12283:  read(3, " x ) ;\n\n  \t\t  \n #  ".., 5120)     = 5120

Then it prints ".:39: Warning: `ACTIVATION_FLAG_NO_LOCAL' underscores within
identifiers are discouraged for use with C-language IDL mappings"
Now comes the wacky part:

12288:  read(3, " / *\n   *   C a n v a s".., 16383)    = 2195
12283:  ioctl(3, TCGETA, 0xFFBFE6D4)                    Err#22 EINVAL
12288:  read(3, 0x0019AD09, 16383)                      = 0
12288:  llseek(3, 0, SEEK_CUR)                          = 2195
12283:  llseek(3, 0xFFFFFFFFFFFFF800, SEEK_CUR)         Err#29 ESPIPE
12288:  close(3)                                        = 0
12288:  write(1, " m e n t e d 6   ( ) ;\n".., 5120)    Err#32 EPIPE
[irrelevant lines elided]

So for some reason the parent process is calling TCGETA (part of termio) on
a pipe, then trying to seek it. I suspect dtrace would be useful in finding
out what's going wrong, but I haven't written any scripts before - any
suggestions?

-- 
James Andrewartha



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