Bug 76382

Summary: Mesa Gallium egllog _eglLog
Product: Mesa Reporter: Chris <f1r31c3r>
Component: Drivers/Gallium/i915gAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: medium    
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Build log for mesa 10.0.4 followup for Matt Turner

Description Chris 2014-03-20 05:14:32 UTC
Hi all.

Sorry in advance for any spelling blurb as i am using match sticks to hold me eyes open.

I found a bug in the mesa, particularly related to the include files used in src/gallium/x11 

files that contain the include egllog.h that define _elLog cant find the it.

Not sure if the environment variable set for the source code under the gallium directory is not set right.

Put simply even though the include is specified in the source file it does not actually include it and hence the compile fails due to "undefined reference _eglLog"

Seems that it only ever fails to compile when gallium has been enabled. egl enabled with gles1 and 2 is fine but enable gallium and the compile error occurs.

Hope it helps.
Comment 1 Chris 2014-03-20 05:20:55 UTC
Aaa poop.

I meant to type /src/gallium/state_trackers/egl/x11 as the directory in the source code to the file that includes egllog.h but does not seem to actually find the egllog.h file path at compile time.

native_x11.c was one of the files that bunked out on compile so i picked it to see why. Of course other files that use the egllog.h include compile fine but not any of them.
Comment 2 Matt Turner 2014-03-20 06:03:53 UTC
Post a build log.
Comment 3 Chris 2014-03-20 23:44:48 UTC
(In reply to comment #2)
> Post a build log.

I would love to but now it compiles fine.

It seems that when you compile and install it first with -gallium -opnvg -xa disabled it compiles and installs.

After that if you recompile it with the above 3 enabled it compiles fine. i guess it pulls the ellog header from the location it is installed to in the system.

I shall run a build on the 10.1 version and see if it still compiles fine and see if i can output the buildlog at the same time.
Comment 4 Chris 2014-03-21 00:10:06 UTC
As predicted.

Trying to compile the new version bunked out on the same compile failure.


Here is a short snippet while ill attach the main buildlog file to the attachments.


../../../../src/gallium/state_trackers/egl/.libs/libegl.a(egl_g3d_sync.o): In function `_eglGetSync':
/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/state_trackers/egl/../../../../src/egl/main/eglsync.h:68: undefined reference to `_eglGetResource'
../../../../src/gallium/state_trackers/egl/.libs/libegl.a(egl_g3d_sync.o): In function `_eglPutSync':
/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/state_trackers/egl/../../../../src/egl/main/eglsync.h:79: undefined reference to `_eglPutResource'
../../../../src/gallium/state_trackers/egl/.libs/libegl.a(egl_g3d_sync.o): In function `egl_g3d_client_wait_sync':
/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/state_trackers/egl/common/egl_g3d_sync.c:230: undefined reference to `_eglGetCurrentContext'
../../../../src/gallium/state_trackers/egl/.libs/libegl.a(egl_g3d_sync.o): In function `egl_g3d_signal_sync':
/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/state_trackers/egl/common/egl_g3d_sync.c:269: undefined reference to `_eglError'
../../../../src/gallium/state_trackers/egl/.libs/libegl.a(native_dri2.o): In function `dri2_surface_process_drawable_buffers':
/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/state_trackers/egl/x11/native_dri2.c:171: undefined reference to `_eglLog'
/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/state_trackers/egl/x11/native_dri2.c:169: undefined reference to `_eglLog'
../../../../src/gallium/state_trackers/egl/.libs/libegl.a(native_dri2.o): In function `dri2_display_init_screen':
/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/state_trackers/egl/x11/native_dri2.c:824: undefined reference to `_eglLog'
/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/state_trackers/egl/x11/native_dri2.c:840: undefined reference to `_eglLog'
../../../../src/gallium/state_trackers/egl/.libs/libegl.a(native_x11.o): In function `native_create_display':
/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/state_trackers/egl/x11/native_x11.c:43: undefined reference to `_eglLog'
../../../../src/gallium/state_trackers/egl/.libs/libegl.a(x11_screen.o):/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/state_trackers/egl/x11/x11_screen.c:274: more undefined references to `_eglLog' follow
collect2: error: ld returned 1 exit status
libtool: install: error: relink `egl_gallium.la' with the above command before installing it
gmake[4]: *** [install-eglLTLIBRARIES] Error 1
gmake[4]: Leaving directory `/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/targets/egl-static'
gmake[3]: *** [install-am] Error 2
gmake[3]: Leaving directory `/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/targets/egl-static'
gmake[2]: *** [install-recursive] Error 1
gmake[2]: Leaving directory `/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src/gallium/targets'
gmake[1]: *** [install-recursive] Error 1
gmake[1]: Leaving directory `/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64/src'
make: *** [install-recursive] Error 1
 * ERROR: media-libs/mesa-10.0.4::gentoo failed (install phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=media-libs/mesa-10.0.4::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=media-libs/mesa-10.0.4::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/media-libs/mesa-10.0.4/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/media-libs/mesa-10.0.4/temp/environment'.
 * Working directory: '/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4-amd64'
 * S: '/var/tmp/portage/media-libs/mesa-10.0.4/work/Mesa-10.0.4'

>>> Failed to emerge media-libs/mesa-10.0.4, Log file:

>>>  '/var/tmp/portage/media-libs/mesa-10.0.4/temp/build.log'



I am almost certain this has something to do with the compile/build process locating its include files folder.
Comment 5 Chris 2014-03-21 00:12:32 UTC
Created attachment 96130 [details]
Build log for mesa 10.0.4 followup for Matt Turner

As promised here is the build log for the build fail on the include dependencies _eglLog and a few others which seem related to the same condition or failt.

thanks
Comment 6 Chris 2014-03-28 03:10:43 UTC
Same problem exists in latest stable branch 10.0.4
Comment 7 Emil Velikov 2017-07-10 12:41:47 UTC
All the binaries produced by Mesa have no-undefined, since this cannot happen any more. Not to mention that st/egl has been nuked from the tree a while ago.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.