Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
sys-devel/gcc-4.8.3: test fails "ld: cannot find -ljack"
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo
View previous topic :: View next topic  
Author Message
daniel.santos
n00b
n00b


Joined: 05 Jun 2007
Posts: 30

PostPosted: Sun Jul 06, 2014 8:10 pm    Post subject: sys-devel/gcc-4.8.3: test fails "ld: cannot find -ljack Reply with quote

This is on x86_64. I have a mostly stable keyworded system. gcc-4.8.3 is currently ~amd64, as is this version of jack (which was required by something else that I ~amd64-ed). I have the following jack-related packages installed:

Code:
# equery u $(qlist -ICS jack)
!!! No USE flags found for media-plugins/gst-plugins-jack-0.10.31

!!! No USE flags found for media-plugins/gst-plugins-jack-1.2.3

[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for media-sound/jack-audio-connection-kit-0.121.3-r1:
 U I
 + + 3dnow        : Use the 3DNow! instruction set
 - - abi_x86_32   : 32-bit (x86) libraries
 + + alsa         : Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture)
 - - cpudetection : Enables runtime cpudetection
 - - debug        : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see
                    http://www.gentoo.org/proj/en/qa/backtraces.xml
 - - doc          : Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
 + + examples     : Install examples, usually source code
 + + mmx          : Use the MMX instruction set
 - - oss          : Add support for OSS (Open Sound System)
 + + pam          : Add basic realime configuration via sys-auth/realtime-base
 + + sse          : Use the SSE instruction set


This is causing me to wonder if the problem is due to mixing stable & unstable keywords (I'm only using ABI_X86="64"). It's expecting the 32 bit version of jack, but it isn't installed.

Code:

mv -f .deps/gnu_javax_sound_midi_dssi_DSSISynthesizer.Tpo .deps/gnu_javax_sound_midi_dssi_DSSISynthesizer.Plo
/bin/sh ../../../libtool --tag=CC   --mode=link /home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/./gcc/xgcc -B/home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/./gcc/ -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include  -m32 -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long  -fexceptions -fasynchronous-unwind-tables -march=native -O2 -g3  -m32 -module -version-info 0:0:0 -no-undefined -avoid-version -m32 -o libgjsmdssi.la -rpath /usr/lib/../lib32/gcj-4.8.3-14 gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.lo gnu_javax_sound_midi_dssi_DSSISynthesizer.lo ../../../native/jni/classpath/jcl.lo -ljack

...skipping some lines from other jobs (hopefully I'm not skipping something important)

libtool: link: /home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/./gcc/xgcc -B/home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/./gcc/ -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include  -m32 -shared  .libs/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.o .libs/gnu_javax_sound_midi_dssi_DSSISynthesizer.o ../../../native/jni/classpath/.libs/jcl.o   -ljack  -m32 -march=native -m32 -m32   -Wl,-soname -Wl,libgjsmdssi.so -o .libs/libgjsmdssi.so
...
/usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/libjack.so when searching for -ljack
/usr/x86_64-pc-linux-gnu/bin/ld: cannot find -ljack
collect2: error: ld returned 1 exit status
make[8]: *** [libgjsmdssi.la] Error 1
make[8]: Leaving directory `/home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/x86_64-pc-linux-gnu/32/libjava/classpath/native/jni/midi-dssi'
...
make[7]: *** [all-recursive] Error 1
make[7]: Leaving directory `/home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/x86_64-pc-linux-gnu/32/libjava/classpath/native/jni'
make[6]: *** [all-recursive] Error 1
make[6]: Leaving directory `/home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/x86_64-pc-linux-gnu/32/libjava/classpath/native'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/x86_64-pc-linux-gnu/32/libjava/classpath'
make[4]: *** [all-recursive] Error 1
...
make[4]: Leaving directory `/home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/x86_64-pc-linux-gnu/32/libjava'
make[3]: *** [multi-do] Error 1
make[3]: Leaving directory `/home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/x86_64-pc-linux-gnu/libjava'
make[2]: *** [all-multi] Error 2
...
make[2]: Leaving directory `/home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/x86_64-pc-linux-gnu/libjava'
make[1]: *** [all-target-libjava] Error 2
make[1]: *** Waiting for unfinished jobs....
Back to top
View user's profile Send private message
russK
Apprentice
Apprentice


Joined: 27 Jun 2006
Posts: 224

PostPosted: Mon Jul 07, 2014 1:38 am    Post subject: Reply with quote

Maybe it's an incompatibility with your jdk? I see a lot of '-m32' flags in the linker flags.

And what does 'java -version' say?
Back to top
View user's profile Send private message
daniel.santos
n00b
n00b


Joined: 05 Jun 2007
Posts: 30

PostPosted: Mon Jul 07, 2014 5:08 am    Post subject: Reply with quote

russK wrote:
And what does 'java -version' say?

Code:
# java -version
java version "1.6.0_31"
OpenJDK Runtime Environment (IcedTea6 1.13.3) (Gentoo build 1.6.0_31-b31)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)


So I'm thinking that it's because my machine is primarily amd64 keyworded, but these are ~amd64 ebuilds and, thus, expecting the whole damn abi_x64_32 to be enabled since my profile is multilib. :( I have gotten one of them to work by doing this:

Code:
# I'm building this on an hdd, and I just used a directory in my /home device
cd /home/tmp-portage/portage/sys-devel/gcc-4.8.3/work/build/x86_64-pc-linux-gnu/32/libjava/classpath/native/jni/midi-dssi
vi Makefile
# search for -ljack and remove it
# save
FEATURES="noauto" ebuild /usr/portage/sys-devel/gcc/gcc-4.8.3.ebuild package merge


Basically, I hacked it, but it would be nice to have a real solution

EDIT: Ok, now I'm just running this script when emerging gcc
Code:
#!/bin/bash

while true; do
   for f in /home/tmp-portage/portage/sys-devel/gcc-{4.9.0,4.8.3}/work/build/x86_64-pc-linux-gnu/32/libjava/classpath/native/jni/midi-dssi/Makefile; do
      if grep ' -ljack' $f > /dev/null 2>&1; then
         echo "Nuking -ljack from $f !"
         sed -i 's/ -ljack//g' $f
      fi
   done
   sleep 16
done
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum