Build issues while jhautobuilding
James Andrewartha <[email protected]> Wed, 20 Dec 2006 13:32:10 +0900
| Newsgroups | gmane.comp.gnome.packaging |
|---|---|
| Organization | Data Analysis Australia |
| Message-ID | <[email protected]> |
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