Opened 19 years ago

Closed 19 years ago

#4762 closed defect (fixed)

gtk2.6(.8+.10): "bus error" during build in gtk2/stock-icons

Reported by: csirac2@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.0
Keywords: Cc:
Port:

Description

Problem: gtk2 configures OK but the gdk-pixbuf/gdk-pixbuf-csource script segfaults/"bus error" when building the directory gtk/stock-icons.

Possibly related:

  • Bug 1448 "gdk-pixbuf broken", in relation to missing

/opt/local/etc/gtk-2.0/gdk-pixbuf.loaders file during build in gtk/stock-icons

Additional:

  • Using fink's Xorg 6.8.2-25
  • port Version: 1.012, all up to date with "port selfupdate && port sync" and

"port -d selfupdate && port -d sync"

  • MacOS X 10.3, Apple updates all applied, XCode 1.5, gcc version 3.3 20030304

(Apple Computer, Inc. build 1671)

  • See attached files for a list of installed port and fink packages.

Output containing error message:

  • Navigate to:

/opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_x11_gtk2/work/gtk+-2.6.10/gtk/stoc k-icons

  • $ sudo make:

GDK_PIXBUF_MODULE_FILE=../../gdk-pixbuf/gdk-pixbuf.loaders

../../gdk-pixbuf/gdk-pixbuf-csource

\

--raw --build-list stock_about_16 ./stock_about_16.png

stock_about_24 ./stock_about_24.png

stock_add_16 ./stock_add_16.png stock_add_24

./stock_add_24.png stock_align_center_16

./stock_align_center_16.png stock_align_center_24

./stock_align_center_24.png stock_align_justify_16 ./

stock_align_justify_16.png stock_align_justify_24

./stock_align_justify_24.png stock_align_left_16 ./

stock_align_left_16.png stock_align_left_24 ./stock_align_left_24.png

stock_align_right_16 ./stock_align_right_16.png

stock_align_right_24 ./stock_align_right_24.png stock_apply_20

./stock_apply_20.png stock_cancel_20

./stock_cancel_20.png stock_dnd_multiple_32 ./stock_dnd_multiple_32.png

stock_bottom_16 ./

stock_bottom_16.png stock_bottom_24 ./stock_bottom_24.png

stock_cdrom_16 ./stock_cdrom_16.png

stock_cdrom_24 ./stock_cdrom_24.png stock_clear_24

./stock_clear_24.png stock_close_20

./stock_close_20.png stock_close_24 ./stock_close_24.png

stock_colorselector_24 ./

stock_colorselector_24.png stock_color_picker_25

./stock_color_picker_25.png > gtkstockpixbufs.h

( rm -f gtkstockpixbufs.h && false )

make: * [gtkstockpixbufs.h] Error 1

  • Running the command directly shows the "bus error":

# GDK_PIXBUF_MODULE_FILE=../../gdk-pixbuf/gdk-pixbuf.loaders

../../gdk-pixbuf/gdk-pixbuf-csource \

--raw --build-list stock_about_16 ./stock_about_16.png

stock_about_24 ./stock_about_24.png

stock_add_16 ./stock_add_16.png stock_add_24

./stock_add_24.png stock_align_center_16

./stock_align_center_16.png stock_align_center_24

./stock_align_center_24.png stock_align_justify_16 ./

stock_align_justify_16.png stock_align_justify_24

./stock_align_justify_24.png stock_align_left_16 ./

stock_align_left_16.png stock_align_left_24 ./stock_align_left_24.png

stock_align_right_16 ./

stock_align_right_16.png stock_align_right_24 ./stock_align_right_24.png

stock_apply_20 ./

stock_apply_20.png stock_cancel_20 ./stock_cancel_20.png

stock_dnd_multiple_32 ./

stock_dnd_multiple_32.png stock_bottom_16 ./stock_bottom_16.png

stock_bottom_24 ./

stock_bottom_24.png stock_cdrom_16 ./stock_cdrom_16.png

stock_cdrom_24 ./stock_cdrom_24.png

stock_clear_24 ./stock_clear_24.png stock_close_20

./stock_close_20.png stock_close_24

./stock_close_24.png stock_colorselector_24 ./stock_colorselector_24.png

stock_color_picker_25

Bus error

Summary of attempted (unsuccessful) workarounds:

  • Patched gtk2 portfile to bring gtk2 up to version 2.6.10 (instead of

darwinport's 2.6.8), as per bug 4611 comment 2

  • NB: The patch is broken or something, com.apple.checksum fails...
  • Removed fink's '/sw' path from $PATH
  • Temporarily placed fink's glib-2.0.800 libs into /opt/local/lib and the .pc in

/opt/local/lib/pkgconfig to bring libglib-2.0 up to version 2.8

  • Ran configure (manually) with modified CFLAGS: changed -O3 to -O0 and added -g

for meaningful gdb backtrace

  • Ran gdk-pixbuf-csource command directly from tsch, interesting error that is

not present when running from bash:

GdkPixbuf-WARNING : Cannot open pixbuf loader module file

'/opt/local/etc/gtk-2.0/gdk-

pixbuf.loaders': No such file or directory Bus error

  • Did a sudo ln -s /opt/local/var/db/dports/build/

file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_x11_gtk2/work/gtk+-2.6.10/gdk-pixbuf

/opt/local/etc/gtk-2.0

  • ... but still get "bus error" in bash and absolutely no output at all in tcsh...
  • ... note to self: don't forget to remove dodgy symlinks on each ./configure...
  • Have run update_prebinding -root / -force... not that I know anything about

Apple's Mach-O or dylib stuff...

The next step was to configure & build with debugging symbols and reduce optimisation to get a meaningful gdb backtrace for the crash. I did "port -vfd configure gtk2" and saw this as darwinport's configure line:

DEBUG: Assembled command: 'cd "/opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_x11_gtk2/work/gtk+-2.6.10"

&&

LDFLAGS="-L/opt/local/lib -lpango-1.0" CPPFLAGS="-I/opt/local/include

-no-cpp-precomp -DX_LOCALE" CFLAGS="-O3

-funroll-loops -fstrict-aliasing" ./configure --prefix=/opt/local --disable-shm

--disable-gtk-doc --with-included-

loaders --mandir=/opt/local/share/man'

I then (manually) ran with -g -O0 instead of -O3:

LDFLAGS="-L/opt/local/lib -lpango-1.0" CPPFLAGS="-I/opt/local/include

-no-cpp-precomp -DX_LOCALE" CFLAGS="-g -O0

-funroll-loops -fstrict-aliasing" ./configure --prefix=/opt/local --disable-shm

--disable-gtk-doc --with-included-

loaders --mandir=/opt/local/share/man'

I then (manually) ran make. The same build error occured.

Running gdb (see attached gdb_csource_session.txt):

# export GDK_PIXBUF_MODULE_FILE=../../gdk-pixbuf/gdk-pixbuf.loaders # gdb bash

run -c "../../gdk-pixbuf/gdk-pixbuf-csource --raw ..." (see attached

gdb_csource_session for full invocation)

Running ktrace (see attached ktrace.out and kdump_csource_session.txt):

# ktrace ../../gdk-pixbuf/gdk-pixbuf-csource --raw ... (see attached

kdump_csource_session for more)

# kdump > kdump_csource_session

Interestingly, removing "--raw" from the argument list prevents the segfault and produces some seemingly appropriate header file contents, although of course the images are now encoded incorrectly...

Still investigating...

Any ideas?

NB: attachments with installed packages, ktrace/gdb sessions to follow...

Attachments (6)

ktrace.out (73.7 KB) - added by csirac2@… 19 years ago.
ktrace.out (binary)
kdump_csource_session.txt (66.9 KB) - added by csirac2@… 19 years ago.
kdump of ktrace.out (human-readable)
gdb_csource_session.txt (5.7 KB) - added by csirac2@… 19 years ago.
gdb session
fink.installed (12.4 KB) - added by csirac2@… 19 years ago.
Installed fink packages.
port.installed (929 bytes) - added by csirac2@… 19 years ago.
Installed darwinports packages.
config.log (91.2 KB) - added by csirac2@… 19 years ago.
config.log generated from ./configure

Download all attachments as: .zip

Change History (8)

Changed 19 years ago by csirac2@…

Attachment: ktrace.out added

ktrace.out (binary)

Changed 19 years ago by csirac2@…

Attachment: kdump_csource_session.txt added

kdump of ktrace.out (human-readable)

Changed 19 years ago by csirac2@…

Attachment: gdb_csource_session.txt added

gdb session

Changed 19 years ago by csirac2@…

Attachment: fink.installed added

Installed fink packages.

Changed 19 years ago by csirac2@…

Attachment: port.installed added

Installed darwinports packages.

Changed 19 years ago by csirac2@…

Attachment: config.log added

config.log generated from ./configure

comment:1 Changed 19 years ago by csirac2@…

libgnomeui fails in the same manner, again on the gdk-pixbuf-csource command.

Again, removing the --raw argument in the Makefile in pixmaps/ allows the build to continue.

make[4]: Entering directory `/opt/local/var/db/dports/build/file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_gnome_libgnomeui/work/libgnomeui-2.10.1/libgnomeui/pixmaps' rm -f gnome-stock-pixbufs.h var=`echo "stock_attach.png stock_book_blue.png stock_book_green.png stock_book_open.png stock_book_red.png stock_book_yellow.png stock_line_in.png stock_mail.png stock_mail_compose.png stock_mail_forward.png stock_mail_receive.png stock_mail_reply.png stock_mail_send.png stock_menu_about.png stock_menu_blank.png stock_scores.png stock_mic.png stock_multiple_file.png stock_not.png stock_table_borders.png stock_table_fill.png stock_text_bulleted_list.png stock_text_indent.png stock_text_numbered_list.png stock_text_unindent.png stock_timer.png stock_timer_stopped.png stock_trash.png stock_trash_full.png stock_volume.png stock_midi.png stock_authentication.png" | sed -e 's,stock_\([\.]*\)\.png,stock_\1 ./stock_\1.png,g'` ; \

/opt/local/bin/gdk-pixbuf-csource --raw --build-list $var > pixbufs-tmp && \ cat ./copyright.txt pixbufs-tmp > gnome-stock-pixbufs.h

make[4]: * [gnome-stock-pixbufs.h] Error 138

comment:2 Changed 19 years ago by csirac2@…

Resolution: fixed
Status: newclosed

A recent selfupdate allowed gtk2 2.6.10_0 to compile and install successfully for me.

This bug seems to have resolved itself... thanks.

Note: See TracTickets for help on using tickets.