Ticket #1004 (closed defect: worksforme)

Opened 2 years ago

Last modified 2 years ago

segfault (ICE) on gnome 2 header when creating FFI file

Reported by: faheem Owned by:
Priority: normal Milestone:
Component: Foreign Function Interface Version: 1.8
Keywords: Cc:

Description

In the course of rebuilding the interface headers, I got an ICE on Debian unstable on an i386 system. This error does not show up on Debian squeeze (stable).

This corresponds to the file x86-headers/gnome2/C/populate.sh in the sources, whose content is

################################################## #!/bin/sh CFLAGS="-m32"; export CFLAGS h-to-ffi.sh pkg-config --cflags libgnomeui-2.0 /usr/include/libgnomeui-2.0/gnome.h ##################################################

The error is:

In file included from /usr/include/libgnomeui-2.0/libgnomeui/libgnomeui.h:34, from /usr/include/libgnomeui-2.0/gnome.h:7: /usr/include/libgnomeui-2.0/libgnomeui/gnome-app.h:58: internal compiler error: Segmentation fault

I have therefore disabled the building of the ffi for this header. I don't get any errors for the other headers.

I have no idea what information would be useful or relevant, so let me know what information you need.

Attachments

gnome-app.h Download (5.2 KB) - added by faheem 2 years ago.
/usr/include/libgnomeui-2.0/libgnomeui/gnome-app.h

Change History

Changed 2 years ago by faheem

/usr/include/libgnomeui-2.0/libgnomeui/gnome-app.h

comment:1 Changed 2 years ago by gb

  • Status changed from new to closed
  • Resolution set to worksforme

I have no idea why you get a segfault while processing that file. I can't reproduce that.

I did check in changes to the ccl/x86-headers/*/C/populate.sh scripts to account for the header file reorganization that's present on x86 versions of (at least) Debian 7.0beta and Ubuntu 12.04. These scripts seem to work correctly on those distributions - and on systems that don't move header files from their traditional locations - with the ffigen4 built from svn (and gcc-4.0.0) and the unmodified h-to-ffi.sh.

On a relatively modern Debian or Ubuntu distribution, the following -dev packages provide the .h files that these scripts expect to be present:

elf: libelf-dev
gl:  freeglut3-dev
gmp: libgmp-dev
gnome2: libgnomeui-dev
gtk2: libgtk2.0-dev
jni: openjdk-6-jdk
libc: libc6-dev,libcap-dev,libpcap-dev,libpci-dev

You're encouraged to use the updated populate.sh scripts (with the unmodified ffigen/h-to-ffi.sh). Ideally, you'll discover that you can use them directly. To the degree that this is possible (and I think that you'll find that it's more possible than you've assumed: a debian "make clean" can likely use "svn revert" or "mv/cp" or other simple means to restore upstream binaries modified by the build process), it's desirable because it helps to minimize the differences between the CCL that we distribute and any package distributed with Debian. If you find that this is not true, please bear in mind that our ability to support things that differ substantially from what we distribute (either in the build process or the final package) is inherently limited.

Note: See TracTickets for help on using tickets.