LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux From Scratch (http://www.linuxquestions.org/questions/linux-from-scratch-13/)
-   -   Mesa can not build because I don't have libglapi. (http://www.linuxquestions.org/questions/linux-from-scratch-13/mesa-can-not-build-because-i-don%27t-have-libglapi-4175417480/)

Dr. 2 07-18-2012 06:57 PM

Mesa can not build because I don't have libglapi.
 
Hi! Recently I've finished LFS and started BLFS. But I'm having a problem in chapter 24 building Mesalib-8.0.4. I'm using the newest version BLFS.

When I do make after following the instructions it ends with this:

Code:


make[1]: Entering directory `/root/xc/Mesa-8.0.4/xdemos'
gcc -I../include -L../lib -lGL -lX11  -lm -o glxinfo glxinfo.c
/usr/bin/ld: warning: libglapi.so.0, needed by ../lib/libGL.so, not found (try using -rpath or -rpath-link)
../lib/libGL.so: undefined reference to `_glapi_get_proc_address'
../lib/libGL.so: undefined reference to `_glapi_get_dispatch_table_size'
../lib/libGL.so: undefined reference to `_glthread_GetID'
../lib/libGL.so: undefined reference to `_glapi_check_multithread'
../lib/libGL.so: undefined reference to `_glapi_set_context'
../lib/libGL.so: undefined reference to `_glapi_set_dispatch'
../lib/libGL.so: undefined reference to `_glapi_tls_Dispatch'
collect2: ld returned 1 exit status
make[1]: *** [glxinfo] Error 1
make[1]: Leaving directory `/root/xc/Mesa-8.0.4/xdemos'
make: *** [default] Error 1

I've tried searching for libglapi using
Code:

find / libglapi
and
Code:

find / libglapi.so.0
but I could not find it. I also could not find an answer to this anywhere on my internet! Does anyone have an idea what I could have done wrong?

whizzit 07-18-2012 08:19 PM

http://www.linuxfromscratch.org/blfs/view/svn/x/mesalib.html

Are these the instructions you're following? My interpretation is that the mesa build will create the libglapi library. This leads me to wonder what your. /configure line is. I suspect a typo or missing --enable-shared-glapi option. Can you post it here?

I assume the checksum of the tarball was ok and that you're working in a fresh unpacked directory.

Dr. 2 07-19-2012 08:37 AM

The checksum says OK and I'm working in the fresh Mesa directory that was created after untarring. I'm using these commands

Code:

sed 's@FLAGS=\"-g@FLAGS=\"@' -i configure                &&
patch -Np1 -i ../MesaLib-8.0.4-add_xdemos-2.patch        &&
patch -Np1 -i ../MesaLib-8.0.4-llvm-3.1-fixes-1.patch    &&
./configure --prefix=$XORG_PREFIX  \
            --enable-texture-float  \
            --enable-gles1          \
            --enable-gles2          \
            --enable-xa            \
            --enable-shared-glapi  \
            --enable-shared-dricore \
            --enable-glx-tls        \
            --with-gallium-drivers="nouveau,r300,r600,svga,swrast" &&
make

Exactly as in the BLFS book (Except I don't use the escaped newlines, but that shouldn't make a difference) and I checked it several times to be sure there were no typos.

And libglapi.so.0 is in the lib directory in the untared mesa directory.

whizzit 07-19-2012 10:14 AM

If the same configure options are exactly the same as created/cached with config.status then the libglapi.so.0 library should be installed into Mesa-8.0.4/lib/. Either way it should build cleanly.

Admittedly I'm not doing the following test on BLFS and with subtly different configure options so at least I can run make...but evidently, libglapi.so.0 is the first thing to be built. I noticed also that to start with there is a python2 script executed relating to glapi. My system is using python 2.7.

Had to strip nouveau from gallium driver set, and force only radeon dri driver ( to remove libdrm_intel dependency ) for the purposes of testing on my system - this is not intended to recommend better configure options than the excellent documentation for BLFS.

Code:

./configure --prefix=/usr/lib/xorg    \
            --with-dri-drivers=radeon \
            --enable-gles1            \
            --enable-gles2            \
            --enable-xa              \
            --enable-texture-float    \
            --enable-shared-dricore  \
            --enable-glx-tls          \
            --with-gallium-drivers="r300,r600,svga,swrast" \
            --enable-shared-glapi

Code:

Making sources for autoconf
gmake[2]: Entering directory `/home/grant/build/Mesa-8.0.4/src/mapi/shared-glapi'
python2 -t -O -O ../../../src/mapi/mapi/mapi_abi.py --mode lib --printer shared-glapi ../../../src/mapi/glapi/gen/gl_and_es_API.xml > glapi_mapi_tmp.h
running /usr/bin/makedepend
gmake[2]: Leaving directory `/home/grant/build/Mesa-8.0.4/src/mapi/shared-glapi'
gmake[2]: Entering directory `/home/grant/build/Mesa-8.0.4/src/mapi/shared-glapi'
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0209 -fvisibility=hidden ../../../src/mapi/mapi/entry.c -o entry.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0209 -fvisibility=hidden ../../../src/mapi/mapi/mapi_glapi.c -o mapi_glapi.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0209 -fvisibility=hidden ../../../src/mapi/mapi/stub.c -o stub.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0209 -fvisibility=hidden ../../../src/mapi/mapi/table.c -o table.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0209 -fvisibility=hidden ../../../src/mapi/mapi/u_current.c -o u_current.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0209 -fvisibility=hidden ../../../src/mapi/mapi/u_execmem.c -o u_execmem.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0209 -fvisibility=hidden ../../../src/mapi/mapi/u_thread.c -o u_thread.o
/bin/sh ../../../bin/mklib -o glapi -linker 'gcc' -ldflags '' \
        -major 0 -minor 0 -patch 0 \
        -id /usr/lib/xorg/lib/libglapi.0.dylib \
        -install ../../../lib \
        entry.o mapi_glapi.o stub.o table.o u_current.o u_execmem.o u_thread.o  -lpthread
mklib: Making Linux shared library:  libglapi.so.0.0.0
mklib: Installing libglapi.so.0.0.0 libglapi.so.0 libglapi.so in ../../../lib
gmake[2]: Leaving directory `/home/grant/build/Mesa-8.0.4/src/mapi/shared-glapi'

For reference, the following excerpt is from Mesa-8.0.4/doc/egl.html:

Quote:

* --enable-shared-glapi

By default, libGL has its own copy of libglapi. This options makes
libGL use the shared libglapi. This is required if applications mix
OpenGL and OpenGL ES.
Did you build python 2 from chapter 13 and/or python 3? Could the src/mapi/mapi/mapi_abi.py not work with python 3 (?), if that version is the one you opted for. Or more specifically your system builds of 2 or 3? Just thinking aloud.

Disclaimer: I'm not an LFS nor BLFS expert :) so I lend my comments to correction by persons more experienced with such systems.

Dr. 2 07-19-2012 12:53 PM

Thanks for the responses.

When I type "python" python 2.7.3 starts so I think that I got python working correctly. I also get similar output to what you got above when I start make.

This is what I get: (Only the start it goes on a long time before it crashes)
Code:

make[1]: Entering directory `/root/xc/Mesa-8.0.4/src'
Making sources for autoconf
make[2]: Entering directory `/root/xc/Mesa-8.0.4/src/mapi/shared-glapi'
python -t -O -O ../../../src/mapi/mapi/mapi_abi.py --mode lib --printer shared-glapi ../../../src/mapi/glapi/gen/gl_and_es_API.xml > glapi_mapi_tmp.h
running /usr/bin/makedepend
make[2]: Leaving directory `/root/xc/Mesa-8.0.4/src/mapi/shared-glapi'
make[2]: Entering directory `/root/xc/Mesa-8.0.4/src/mapi/shared-glapi'
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0301 -fvisibility=hidden ../../../src/mapi/mapi/entry.c -o entry.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0301 -fvisibility=hidden ../../../src/mapi/mapi/mapi_glapi.c -o mapi_glapi.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0301 -fvisibility=hidden ../../../src/mapi/mapi/stub.c -o stub.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0301 -fvisibility=hidden ../../../src/mapi/mapi/table.c -o table.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0301 -fvisibility=hidden ../../../src/mapi/mapi/u_current.c -o u_current.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0301 -fvisibility=hidden ../../../src/mapi/mapi/u_execmem.c -o u_execmem.o
gcc -c -I../../../include -I../../../src/mapi -DMAPI_MODE_GLAPI -DMAPI_ABI_HEADER=\"shared-glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0301 -fvisibility=hidden ../../../src/mapi/mapi/u_thread.c -o u_thread.o
/bin/sh ../../../bin/mklib -o glapi -linker 'gcc' -ldflags '' \
        -major 0 -minor 0 -patch 0 \
        -id /usr/lib/libglapi.0.dylib \
        -install ../../../lib \
        entry.o mapi_glapi.o stub.o table.o u_current.o u_execmem.o u_thread.o  -lpthread
mklib: Making Linux shared library:  libglapi.so.0.0.0
mklib: Installing libglapi.so.0.0.0 libglapi.so.0 libglapi.so in ../../../lib
make[2]: Leaving directory `/root/xc/Mesa-8.0.4/src/mapi/shared-glapi'
make[2]: Entering directory `/root/xc/Mesa-8.0.4/src/mapi/glapi'
running /usr/bin/makedepend
make[2]: Leaving directory `/root/xc/Mesa-8.0.4/src/mapi/glapi'
make[2]: Entering directory `/root/xc/Mesa-8.0.4/src/mapi/glapi'
gcc -c -I../../../include -I../../../src/mapi -I../../../src/mesa -DMAPI_MODE_BRIDGE -DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\" -O2 -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fno-builtin-memcmp  -fPIC  -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0301 -fvisibility=hidden ../../../src/mapi/mapi/entry.c -o entry.o
mklib: Making Linux static library:  libglapi.a
ar: creating libglapi.a
make[2]: Leaving directory `/root/xc/Mesa-8.0.4/src/mapi/glapi'

It builds correctly when I leave out --enable-shared-glapi .

whizzit 07-19-2012 04:20 PM

libxml2-python.so
 
That's interesting. So the shared library is getting built ( when using --enable-shared-glapi obviously ) but just doesn't contain the right symbols.

Might be worth checking that the missing symbols in the error message from your original post are contained within the Mesa-8.0.4/src/mapi/shared-glapi/mapi_glapi.o object file and compare that with what is in Mesa-8.0.4/lib/libglapi.so.0.0.0 using objdump -t, for example.

The only other idea I have is that the libxml2-python must be built if using OpenGL ES, which is the case here due to --enable-gles1 and --enable-gles2. The BLFS libxml2 build instructions only recommend Python as a dependency whereas the MesaLib instructions state that it that the libxml2-python module *is* required ( but only recommended ).

Curiously, all bar 2 xml files in the checked out source code are within the src/mapi/glapi/ directory.

Dr. 2 07-20-2012 12:35 PM

All symbols are in Mesa-8.0.4/lib/libglapi.so.0.0.0 and only 1 is missing in Mesa-8.0.4/src/mapi/shared-glapi/mapi_glapi.o.

How can I see if I have libxml2-python? I have installed both python and libxml2 in that order.
I have found this
Code:

python -c "import sys; print sys.path"
And I tried replacing sys with libxml2 and it says
Code:

'module' object has no attribute 'path'
So I think that I have got libxml2-python because when I replace sys with some boogus name like ml2 it says there is no module named ml2.

The build works also when I leave out --enable-gles1 and --enable-gles2.

whizzit 07-20-2012 04:04 PM

Ok. The BLFS libxml2 docs say the module would be libxml2mod.so, but it seems you have it.

Well, my last wacky idea wasn't worth mentioning except I've exhausted everything I can think of, so:

* lib/libglapi.so.0.0.0 seems to have the right symbols. The original error message was unable to find libglapi.so.0 - this being a symlink to libglapi.so.0.0.0.

Code:

ged Mesa-8.0.4 $ ls -lgo lib/libglapi*
lrwxrwxrwx 1    13 Jul 20 20:19 lib/libglapi.so -> libglapi.so.0
lrwxrwxrwx 1    17 Jul 20 20:19 lib/libglapi.so.0 -> libglapi.so.0.0.0
-rwxr-xr-x 1 230205 Jul 20 20:19 lib/libglapi.so.0.0.0

A long shot I wouldn't put money on.

I don't know what else to suggest.

Dr. 2 07-21-2012 07:38 AM

I decided to simply leave out --enable-shared-glapi and got xwindows working. I guess I can always try compiling Mesa with --enable-shared-glapi again if this causes me problems in the future.

Anyways thanks for your help I really appreciate it!

whizzit 07-22-2012 04:19 PM

You're welcome. I felt sure we'd crack it.

If/when you revisit this in the future and find a solution, I will be interested to know what we overlooked.

All the best.


All times are GMT -5. The time now is 09:19 PM.