Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Buzztrax fails build due to Segmentation fault #113

Closed
plater opened this issue Oct 23, 2022 · 14 comments
Closed

Buzztrax fails build due to Segmentation fault #113

plater opened this issue Oct 23, 2022 · 14 comments

Comments

@plater
Copy link

plater commented Oct 23, 2022

Hi, I'm stumped as to what is failing here:
gtkdoc-scan --module=buzztrax-gst --ignore-headers="gstdirectcontrolbinding.h gstbmlorc.h gstbmlorc-dist.h ../../../src/gst/sidsyn/envelope.h extfilt.h filter.h pot.h siddefs.h sidemu.h spline.h voice.h wave.h " ${_source_dir} --rebuild-types
if grep -l '^..$' buzztrax-gst.types > /dev/null 2>&1 ; then
scanobj_options="";
gtkdoc-scangobj 2>&1 --help | grep >/dev/null "--verbose";
if test "$?" = "0"; then
if test "x" = "x1"; then
scanobj_options="--verbose";
fi;
fi;
CC="/usr/bin/bash ../../../libtool --tag=CC --mode=compile gcc -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -Wno-error=deprecated-declarations -Wno-error=format-truncation= -Wno-error=format-overflow= -Wno-error=incompatible-pointer-types -Wno-error=restrict" LD="/usr/bin/bash ../../../libtool --tag=CC --mode=link gcc -lgobject-2.0 -lglib-2.0 -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -Wno-error=deprecated-declarations -Wno-error=format-truncation= -Wno-error=format-overflow= -Wno-error=incompatible-pointer-types -Wno-error=restrict -flto=auto" RUN="/usr/bin/bash ../../../libtool --mode=execute" CFLAGS="-I../../../src/lib -I../../.. -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/libxml2 -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -pthread -I/usr/include/gudev-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libgsf-1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libxml2 -mmmx -msse -O0 -Wall -Werror -g -DGLIB_DISABLE_DEPRECATION_WARNINGS -DGDK_DISABLE_DEPRECATION_WARNINGS -DCLUTTER_DISABLE_DEPRECATION_WARNINGS -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -Wno-error=deprecated-declarations -Wno-error=format-truncation= -Wno-error=format-overflow= -Wno-error=incompatible-pointer-types -Wno-error=restrict" LDFLAGS="../../../libbuzztrax-gst.la ../../../libbuzztraxaudio.la ../../../libbuzztraxdec.la ../../../libgstbml.la ../../../libgstfluidsynth.la ../../../libgstsidsyn.la -lgthread-2.0 -Wl,--export-dynamic -lgmodule-2.0 -pthread -lglib-2.0 -lgio-2.0 -lxml2 -lgstcontroller-1.0 -lgstaudio-1.0 -lgstbase-1.0 -lgstfft-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -lasound -lgudev-1.0 -lgobject-2.0 -lglib-2.0 -lgsf-1 -lgobject-2.0 -lglib-2.0 -lxml2 -flto=auto"
gtkdoc-scangobj --type-init-func="extern void gst_init(gint ,gchar
*);gst_init(&argc,&argv)" $scanobj_options --module=buzztrax-gst;
else
for i in buzztrax-gst.actions buzztrax-gst.args buzztrax-gst.hierarchy buzztrax-gst.interfaces buzztrax-gst.prerequisites buzztrax-gst.signals ; do
test -f $i || touch $i ;
done
fi
grep: warning: stray \ before -
../../../libtool: line 4732: warning: setlocale: LC_COLLATE: cannot change locale (en_ZA.UTF-8): No such file or directory

(buzztrax-gst-scan:3800): GLib-GObject-CRITICAL **: 09:18:51.764: g_param_spec_internal: assertion 'g_param_spec_is_valid_name (name)' failed
2022-10-23 09:18:51,765:scangobj.py:execute_command:1289:WARNING:Running scanner failed: -11, command: /usr/bin/bash ../../../libtool --mode=execute ./buzztrax-gst-scan
make[3]: *** [Makefile:1180: scan-build.stamp] Error 245
make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/buzztrax-1f57d1b6ff55dd3d574f92039bb06a768d613d67/docs/reference/bt-gst'
make[2]: *** [Makefile:9580: docs-bt-gst] Error 2
make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/buzztrax-1f57d1b6ff55dd3d574f92039bb06a768d613d67'
make[1]: *** [Makefile:7775: all-recursive] Error 1
make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/buzztrax-1f57d1b6ff55dd3d574f92039bb06a768d613d67'
make: *** [Makefile:3262: all] Error 2

@plater
Copy link
Author

plater commented Oct 23, 2022

What appears to cause the build fail is:
(buzztrax-gst-scan:391): GLib-GObject-CRITICAL **: 15:15:09.814: g_param_spec_internal: assertion 'g_param_spec_is_valid_name (name)' failed

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7616b28 in g_param_spec_string () from /usr/lib64/libgobject-2.0.so.0

Adding the built libraries to $LD_LIBRARY_PATH and running gdb gives:
(gdb) bt
#0 0x00007ffff7616b28 in g_param_spec_string () at /usr/lib64/libgobject-2.0.so.0
#1 0x00007ffff7e0ba06 in settings_foreach_func (data=0x7fffffffd370, name=0x74f880 "audio.alsa.device", type=) at src/gst/fluidsynth/fluidsynth.c:282
#2 0x00007ffff7d52198 in () at /usr/lib64/libfluidsynth.so.3
#3 0x00007ffff7e0bd3a in gstbt_fluid_synth_class_init (klass=0x736000) at src/gst/fluidsynth/fluidsynth.c:852
#4 gstbt_fluid_synth_class_intern_init (klass=0x736000) at src/gst/fluidsynth/fluidsynth.c:130
#5 0x00007ffff762681b in g_type_class_ref () at /usr/lib64/libgobject-2.0.so.0
#6 0x00000000004037a4 in get_object_types () at buzztrax-gst-scan.c:102
#7 main (argc=, argv=) at buzztrax-gst-scan.c:159

@plater plater changed the title Buzztrax fails build on openSUSE:Tumbleweed Buzztrax fails build due to Segmentation fault Oct 23, 2022
@ensonic
Copy link
Member

ensonic commented Oct 25, 2022

gtk-doc tries to instantiate code to introspect them. Since I have not touch neither project, I'Ve tried to rebuild, but get trapped by -Werror and deprecated gtk+ api that has no replacement :/

@plater
Copy link
Author

plater commented Oct 26, 2022

gtk-doc tries to instantiate code to introspect them. Since I have not touch neither project, I'Ve tried to rebuild, but get trapped by -Werror and deprecated gtk+ api that has no replacement :/

I use many "-Wno-error=" flags to build buzztrax, they increase in number with every gcc update.
Buzztrax has made it into the next stable distribution but if it can't build it will be dropped from Tumbleweed.

@ensonic
Copy link
Member

ensonic commented Oct 27, 2022

 ./autogen.sh --enable-deprecated --disable-debug --enable-gtk-doc

and it build here. I'll take a closer look on the weekend to see if I can do some more cleanups.

@plater
Copy link
Author

plater commented Oct 28, 2022

it doesn't build for Tumbleweed with gcc-7, gcc-11 and gcc-12 so the problem lays with some other library that changed abi or something

@dlbeswick
Copy link
Contributor

dlbeswick commented Oct 28, 2022 via email

@plater
Copy link
Author

plater commented Oct 28, 2022

It has to be due to some updated dependency, it builds ok for the conservative Leap:15.4

@ensonic
Copy link
Member

ensonic commented Oct 29, 2022

I am actually on Tumbleweed, use gcc-12 and everything builds:

gcc --version
gcc (SUSE Linux) 12.2.1 20220830 [revision e927d1cf141f221c5a32574bde0913307e140984]

Here is the full autogen output: https://gist.github.com/ensonic/ab5d4d75ab3d9f990c779b9a477d3ebf

@plater
Copy link
Author

plater commented Oct 30, 2022

@ensonic when did you last update your Tumbleweed? I've tried on two systems, one up to date the other unfortunately didn't have most of the dependencies installed so most of them are the latest also.
your build doesn't have "Check based unit tests : no" yours says yes
Comparing the configure outputs you have this:
checking for msgmerge... (cached) /usr/bin/msgmerge
checking for ld used by GCC... /usr/x86_64-suse-linux/bin/ld -m elf_x86_64
checking if the linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) is GNU ld... yes
checking for shared library run path origin... done

and I have this:
checking for msgmerge... (cached) /usr/bin/msgmerge
checking for ld used by GCC... /usr/x86_64-suse-linux/bin/ld -m elf_x86_64
checking if the linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) is GNU ld... egrep: warning: egrep is obsolescent; using grep -E
yes
checking for shared library run path origin... egrep: warning: egrep is obsolescent; using grep -E
done

Which revision are you building, I'm building "c206774ce4510793d03860c2c2ffbcc7e264254a"

@ensonic
Copy link
Member

ensonic commented Oct 30, 2022

> cat /etc/os-release 
NAME="openSUSE Tumbleweed"
# VERSION="20221027"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20221027"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:tumbleweed:20221027"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
> git describe 
RELEASE_0_10-555-g833287c6
> git log --oneline | head -n5
833287c6 Crude custom machine graphics
c206774c Song title stays unset unless explicitly set by user
640877a4 Make sure any patterns beyond the song "end" are saved and restored.
6a5de1a4 Revert "song-io: use non deprecated functions"
ee997b34 song-io: use non deprecated functions

@plater
Copy link
Author

plater commented Feb 7, 2023

I've tried but no success in getting past the "(buzztrax-gst-scan:7496): GLib-GObject-CRITICAL **: 11:21:30.310: g_param_spec_internal: assertion 'g_param_spec_is_valid_name (name)' failed
2023-02-07 11:21:30,311:scangobj.py:execute_command:1289:WARNING:Running scanner failed: -11, command: /bin/sh ../../../libtool --mode=execute ./buzztrax-gst-scan" error.
Now there's https://bugzilla.opensuse.org/show_bug.cgi?id=1207939 as a result of the build failure. I'm going to have to delete the package if it can't be fixed.
I've used the same configure options as in your comment: --enable-deprecated --disable-debug --enable-gtk-doc have to use autogen --noconfigure and the %configure but it fails if plain autogen is used anyway.
see https://build.opensuse.org/package/show/home:plater/buzztrax

@ensonic
Copy link
Member

ensonic commented Mar 5, 2023

David, thanks for your help. As sad as it is, this is probably the way of time then. There has never been enough interest from developers side to keep up with the moving parts of the dependencies :/

@plater
Copy link
Author

plater commented Mar 6, 2023

It will still be in multimedia:apps, Leap:15.4 still builds

@plater
Copy link
Author

plater commented Mar 6, 2023

Builds for the next Leap:15.5 as well

@plater plater closed this as not planned Won't fix, can't repro, duplicate, stale Mar 6, 2023
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this issue Mar 6, 2023
https://build.opensuse.org/request/show/1069646
by user plater + dimstar_suse
See Buzztrax/buzztrax#113 (comment) The package can no longer build for Tumbleweed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants