stefan-gr / abendbrot

Desktop oriented overlay for various ebuilds and the occasional gamer
19 stars 13 forks source link

games-emulation/retroarch-1.6.9: linkage failed #90

Closed maggu2810 closed 6 years ago

maggu2810 commented 6 years ago

I have some modifications on my system as I updated gcc and did a massive USE flag cleanup.

Caused by the changed USE flags I need to recompile retroarch. But it fails during linkage.

Here the USE flags:

[ebuild   R    ] games-emulation/retroarch-1.6.9::abendbrot  USE="7zip alsa assets cores database egl ffmpeg gles2* joypad_autoconfig libass materialui network opengl overlays pulseaudio python sdl2* shaders threads truetype udev v4l2 wayland xmb xml zlib -X* (-armvfp) -cg -cheevos -debug -dispmanx -gles3 -jack -kms -lakka -libusb -miniupnpc (-neon) -openal -osmesa -oss -sdl* -videocore -vulkan -xinerama -xv*" CPU_FLAGS_X86="sse2" PYTHON_SINGLE_TARGET="python3_5 -python3_4 -python3_6" PYTHON_TARGETS="python3_5 -python3_4 -python3_6" 0 KiB

Here the error:

LD retroarch
/usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: obj-unix/gfx/common/egl_common.o: undefined reference to symbol 'eglCreateContext'
/usr/lib64/libEGL.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [Makefile:148: retroarch] Error 1

As a simple workaround to get it working I added the EGL linkage by modifying the Makefile and continue the build (added -lEGL after the $(LDFLAGS)):

retroarch: $(RARCH_OBJ)
        @$(if $(Q), $(shell echo echo LD $@),)
        $(Q)$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) -lEGL $(LIBRARY_DIRS)

build.log

stefan-gr commented 6 years ago

This cursed egl failure is something I had a few years ago and it disappeared without me doing anything. Has time fixed it for you as well? I will flag-o-matic this one into the build otherwise.

maggu2810 commented 6 years ago

@stefan-gr Sorry, do not use it anymore.

stefan-gr commented 6 years ago

No worries @maggu2810, I will close this until it surfaces again for someone.