OK, I seem to have created a good build using fPIC and Mesa, and ParaView. The secret is as follows:
The error from a Paraview build says it is trying to relocate position dependent code. The normal way to create position independent code is with the -fPIC flag, passed into the CFLAGS and CXXFLAGS of Mesa, as presented in the previous e-mails. However, any inline assembler code in your libraries will also make it position dependent. Thus, to compile Mesa, I did the following: ./configure --prefix=base-directory/Mesa-7.4.2-static --with-driver=xlib CFLAGS="-O -fPIC" CXXFLAGS="-O -fPIC" --disable-shared --disable-asm make make install This then successfully made a version of ParaView. Alan From: Scott, W Alan Sent: Tuesday, April 12, 2011 11:00 AM To: Scott, W Alan; pat marion Cc: paraview@paraview.org Subject: RE: [Paraview] ParaView builds using Mesa Pat/All, So, I tried compiling the static mesa libraries with fpic. Basically, I added the following to a special configs file: CFLAGS = -O -fPIC CXXFLAGS = -O -fPIC PIC_FLAGS = -fPIC CXX_PIC_FLAGS = -fPIC Then, I CMake my paraview, with the following: OPENGL_INCLUDE_DIR /projects/viz/paraview/support/Linux-cee-sw-rhel5-x86_64/install/Mesa-7.4.2-static/include OPENGL_gl_LIBRARY /projects/viz/paraview/support/Linux-cee-sw-rhel5-x86_64/install/Mesa-7.4.2-static/lib/libMESAGL.a OPENGL_glu_LIBRARY /projects/viz/paraview/support/Linux-cee-sw-rhel5-x86_64/install/Mesa-7.4.2-static/lib/libMESAGLU.a OPENGL_xmesa_INCLUDE_DIR OSMESA_INCLUDE_DIR /projects/viz/paraview/support/Linux-cee-sw-rhel5-x86_64/install/Mesa-7.4.2-static/include OSMESA_LIBRARY /projects/viz/paraview/support/Linux-cee-sw-rhel5-x86_64/install/Mesa-7.4.2-static/lib/libMESAOSMesa.a VTK_USE_MANGLED_MESA OFF VTK_OPENGL_HAS_OSMESA OFF And -it fails as follows: inking CXX shared library ../../bin/libvtkRendering.so /usr/bin/ld: /projects/viz/paraview/support/Linux-cee-sw-rhel5-x86_64/install/Me sa-7.4.2-static/lib/libMESAGL.a(glapi_x86-64.o): relocation R_X86_64_PC32 agains t `_glapi_Dispatch' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Bad value collect2: ld returned 1 exit status make[2]: *** [bin/libvtkRendering.so.pv3.10] Error 1 make[1]: *** [VTK/Rendering/CMakeFiles/vtkRendering.dir/all] Error 2 make: *** [all] Error 2 Notice it is the correct version of mesa (I renamed libGL.a to libMESAGL.a, thus making sure that I am not picking up system versions of Mesa), and that it is still asking for fPIC. Alan From: paraview-boun...@paraview.org [mailto:paraview-boun...@paraview.org] On Behalf Of Scott, W Alan Sent: Monday, April 11, 2011 6:16 PM To: pat marion Cc: paraview@paraview.org Subject: Re: [Paraview] ParaView builds using Mesa Yes, I do have Python enabled. I see where shared libs gets turned on. I will try to create fpic versions of static mesa, and if that doesn't work, try a dynamic build of ParaView (again). Thanks. Alan From: pat marion [mailto:pat.mar...@kitware.com] Sent: Monday, April 11, 2011 6:08 PM To: Scott, W Alan Cc: paraview@paraview.org Subject: Re: [Paraview] ParaView builds using Mesa Hi Alan, Are you building with python enabled? If python is enabled then BUILD_SHARED_LIBS will turn itself on automatically. Is there any reason you cannot compile mesa with shared libs, or compile mesa static with -fPIC? Pat On Mon, Apr 11, 2011 at 8:00 PM, Scott, W Alan <wasc...@sandia.gov<mailto:wasc...@sandia.gov>> wrote: I am trying to create a paraview (client side) build of ParaView using Mesa on Linux. I have compiled Mesa using Mesa 7.4.2, compiled with 'make linux-x86-64-static'. I am now trying to compile ParaView, and keep failing with the following: [ 7%] Built target Cosmo Linking CXX shared library ../../../bin/libvtkftgl.so /usr/bin/ld: /projects/viz/paraview/support/Linux-cee-sw-rhel5-x86_64/install/Mesa-7.4.2/lib/libMESAGL.a(glapi.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC /projects/viz/paraview/support/Linux-cee-sw-rhel5-x86_64/install/Mesa-7.4.2/lib/libMESAGL.a: could not read symbols: Bad value collect2: ld returned 1 exit status make[2]: *** [bin/libvtkftgl.so.pv3.10] Error 1 make[1]: *** [VTK/Utilities/ftgl/CMakeFiles/vtkftgl.dir/all] Error 2 make: *** [all] Error 2 I have tried setting "BUILD_SHARED_LIBS" off when using ccmake on paraView, but it keeps turning itself on. What I believe I need to do is create a static build of ParaView, thus Mesa won't need the -fPIC flag. Any ideas? Thanks all, Alan -------------------------------------------------------- W. Alan Scott ParaView Support Manager GAITS Sandia National Laboratories, MS 0822 Org 9326 - Building 880 A1-C (505) 284-0932<tel:%28505%29%20284-0932> FAX (505) 845-0833<tel:%28505%29%20845-0833> --------------------------------------------------------- _______________________________________________ Powered by www.kitware.com<http://www.kitware.com> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview