wrl / rove

rove is music performance software for monomes
GNU General Public License v3.0
33 stars 9 forks source link

build failure #8

Open iioflow opened 11 years ago

iioflow commented 11 years ago

while compiling rove from latest git:


CCFLAGS="-march=native -fomit-frame-pointer -O2 -pipe" LINKFLAGS="-Wl,-O1 -Wl,--as-needed" "/var/tmp/portage/media-sound/rove-9999/work/rove-9999/waf" --prefix=/usr configure Setting top to : /var/tmp/portage/media-sound/rove-9999/work/rove-9999 Setting out to : /var/tmp/portage/media-sound/rove-9999/work/rove-9999/build

Checking for 'gcc' (c compiler) : x86_64-pc-linux-gnu-gcc

Checking for libmonome : yes Checking for JACK : yes Checking for libsndfile : yes Checking for libsamplerate : yes

'configure' finished successfully (2.088s)

Source configured. Compiling source in /var/tmp/portage/media-sound/rove-9999/work/rove-9999 ... "/var/tmp/portage/media-sound/rove-9999/work/rove-9999/waf" build --verbose --jobs=2 Waf: Entering directory /var/tmp/portage/media-sound/rove-9999/work/rove-9999/build' [ 1/11] c: src/list.c -> build/src/list.c.2.o 19:12:12 runner ['x86_64-pc-linux-gnu-gcc', '-march=native', '-fomit-frame-pointer', '-O2', '-pipe', '-std=c99', '-Wall', '-Werror', '-D_GNU_SOURCE', '-I/var/tmp/portage/media-sound/rove-9999/work/rove-9999/build/src/private', '-I/var/tmp/portage/media-sound/rove-9999/work/rove-9999/src/private', '-DHAVE_MONOME_H=1', '-DHAVE_JACK_JACK_H=1', '-DHAVE_SNDFILE_H=1', '-DHAVE_SRC=1', '../src/list.c', '-c', '-o', 'src/list.c.2.o'] [ 2/11] c: src/settings.c -> build/src/settings.c.2.o 19:12:12 runner ['x86_64-pc-linux-gnu-gcc', '-march=native', '-fomit-frame-pointer', '-O2', '-pipe', '-std=c99', '-Wall', '-Werror', '-D_GNU_SOURCE', '-I/var/tmp/portage/media-sound/rove-9999/work/rove-9999/build/src/private', '-I/var/tmp/portage/media-sound/rove-9999/work/rove-9999/src/private', '-DHAVE_MONOME_H=1', '-DHAVE_JACK_JACK_H=1', '-DHAVE_SNDFILE_H=1', '-DHAVE_SRC=1', '../src/settings.c', '-c', '-o', 'src/settings.c.2.o'] ../src/list.c: In function 'list_pop_raw': ../src/list.c:114:17: error: 'm' may be used uninitialized in this function [-Werror=uninitialized] cc1: all warnings being treated as errors Waf: Leaving directory/var/tmp/portage/media-sound/rove-9999/work/rove-9999/build' Build failed -> task in 'rove' failed (exit status 1): {task 39625744: c list.c -> list.c.2.o} ['x86_64-pc-linux-gnu-gcc', '-march=native', '-fomit-frame-pointer', '-O2', '-pipe', '-std=c99', '-Wall', '-Werror', '-D_GNU_SOURCE', '-I/var/tmp/portage/media-sound/rove-9999/work/rove-9999/build/src/private', '-I/var/tmp/portage/media-sound/rove-9999/work/rove-9999/src/private', '-DHAVE_MONOME_H=1', '-DHAVE_JACK_JACK_H=1', '-DHAVE_SNDFILE_H=1', '-DHAVE_SRC=1', '../src/list.c', '-c', '-o', 'src/list.c.2.o']

  • ERROR: media-sound/rove-9999 failed (compile phase):
  • build failed
iioflow commented 11 years ago

with artfwo's help on irc, it looks like this (and several other related errors) stem the use of "-Werror" in the wscript's CFLAGS. once "-Werror" is deleted, the build proceeded as normal, albeit with several other warnings about uninitialized variables.

however, rove now completely fails to run! either it's erroring out (with "segmentation fault" on loading a set) because of its own issues, or libmonome is at fault. a bit of gdb and backtrace results in this:


Program received signal SIGSEGV, Segmentation fault. 0x00007ffff76c5300 in monome_open () from /usr/lib64/libmonome.so.1 (gdb) bt

0 0x00007ffff76c5300 in monome_open () from /usr/lib64/libmonome.so.1

1 0x00000000004063e3 in r_monome_init ()

2 0x0000000000406c08 in main ()


wrl commented 11 years ago

man.

can you recompile with debug symbols (CFLAGS=-ggdb) and reproduce the crash? it might be related to some of nedko's libmonome changes.

sorry for the slow reply, i'm busy as hell these days.

on Tue, Apr 02, 2013 at 07:50:24PM -0700, nightmorph wrote:

with artfwo's help on irc, it looks like this (and several other related errors) stem the use of "-Werror" in the wscript's CFLAGS. once "-Werror" is deleted, the build proceeded as normal, albeit with several other warnings about uninitialized variables.

however, rove now completely fails to run! either it's erroring out (with "segmentation fault" on loading a set) because of its own issues, or libmonome is at fault. a bit of gdb and backtrace results in this:


Program received signal SIGSEGV, Segmentation fault. 0x00007ffff76c5300 in monome_open () from /usr/lib64/libmonome.so.1 (gdb) bt

0 0x00007ffff76c5300 in monome_open () from /usr/lib64/libmonome.so.1

1 0x00000000004063e3 in r_monome_init ()

2 0x0000000000406c08 in main ()



Reply to this email directly or view it on GitHub: https://github.com/wrl/rove/issues/8#issuecomment-15814889

iioflow commented 11 years ago

improved rove GDB output, with debugging symbols is below. note that i can't compile/install libmonome at the moment, because something changed in its codebase in the last 18 months such that it poisons the env ld.so cache -- maybe it doesn't use, or has a badly formatted, .pc file or something. so i'm stuck on my existing old libmonome for the foreseeable future. makes diagnosis a little harder, i know. my old unmodified libmonome fork should still work and not result in sandbox access violations at install/env-update time.


$ gdb /usr/bin/rove GNU gdb (Gentoo 7.5.1 p2) 7.5.1 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". For bug reporting instructions, please see: http://bugs.gentoo.org/... Reading symbols from /usr/bin/rove...done. (gdb) run ~/session/setlist.rv Starting program: /usr/bin/rove ~/session/setlist.rv warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1".

hey, welcome to rove!

loading yr sessions: loaded /home/user/session/setlist.rv [New Thread 0x7ffff7fcc700 (LWP 6250)] [New Thread 0x7ffff7f4b700 (LWP 6251)]

Program received signal SIGSEGV, Segmentation fault. 0x00007ffff76c5300 in monome_open () from /usr/lib64/libmonome.so.1 (gdb) bt

0 0x00007ffff76c5300 in monome_open () from /usr/lib64/libmonome.so.1

1 0x0000000000406543 in r_monome_init () at ../src/monome.c:303

2 0x0000000000406d68 in main (argc=2, argv=0x7fffffffddb8)

at ../src/rove.c:252
wrl commented 11 years ago

yeah the crash is happening in libmonome so without debug symbols there's not much we can do.

libmonome doesn't have a pkgconfig file. how does this poison your ld.so cache? (i'm not sure how it works on gentoo)

iioflow commented 11 years ago

i'll have to dig up some docs on gentoo's env variables and .pc files and expected locations of stuff, but in the mean time, i manually compiled libmonome via ./waf and debug. here's what i got:


(gdb) run ~/session/setlist.rv Starting program: /usr/bin/rove ~/session/setlist.rv warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1".

hey, welcome to rove!

loading yr sessions: loaded /home/user/session/setlist.rv [New Thread 0x7ffff7fcc700 (LWP 9859)] [New Thread 0x7ffff7f4b700 (LWP 9860)]

Program received signal SIGSEGV, Segmentation fault. 0x00007ffff76c54ba in monome_open ( dev=0x67bf50 "osc.udp://127.0.0.1:8080/rove") at ../src/libmonome.c:105 105 monome->proto = m->proto; (gdb) bt

0 0x00007ffff76c54ba in monome_open (

dev=0x67bf50 "osc.udp://127.0.0.1:8080/rove") at ../src/libmonome.c:105

1 0x0000000000406543 in r_monome_init () at ../src/monome.c:303

2 0x0000000000406d68 in main (argc=2, argv=0x7fffffffddb8)

at ../src/rove.c:252