Bug 1743 - CVS does not compile on Solaris due "ld: fatal: too many symbols require `small' PIC references"
Summary: CVS does not compile on Solaris due "ld: fatal: too many symbols require `sma...
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: * Other (show other bugs)
Version: git
Hardware: SPARC Solaris
: high blocker
Assignee: Roland Mainz
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-10-31 08:39 UTC by Roland Mainz
Modified: 2011-10-15 15:48 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Possible fix (or workaround ?) for 2004-10-31-trunk (732 bytes, patch)
2004-10-31 13:37 UTC, Roland Mainz
no flags Details | Splinter Review
[FIXED_X11R68x] Patch for 2004-10-31-trunk incl. Changelog comment (1.42 KB, patch)
2004-10-31 15:18 UTC, Roland Mainz
roland.mainz: 6.8-branch+
Details | Splinter Review

Description Roland Mainz 2004-10-31 08:39:57 UTC
2004-10-31-trunk, an attempt to build the Xorg CVS tree on Solaris 2.8 with Sun
Workshop/Forte 8 fails like this:
-- snip --
rm -f DONE
touch DONE
rm -f libOSMesa.so.4.0~
(cd  .; LD_RUN_PATH=/usr/X11R6/lib cc -o  ./libOSMesa.so.4.0~ -G -z text  -h
libOSMesa.so.4.0  osmesa.o driverfuncs.o      
../../../../../lib/GL/mesa/main/api_arrayelt.o 
../../../../../lib/GL/mesa/main/api_loopback.o 
../../../../../lib/GL/mesa/main/api_noop.o 
../../../../../lib/GL/mesa/main/api_validate.o 
../../../../../lib/GL/mesa/main/accum.o 
../../../../../lib/GL/mesa/main/attrib.o 
../../../../../lib/GL/mesa/main/blend.o 
../../../../../lib/GL/mesa/main/bufferobj.o 
../../../../../lib/GL/mesa/main/buffers.o 
../../../../../lib/GL/mesa/main/clip.o 
../../../../../lib/GL/mesa/main/colortab.o 
../../../../../lib/GL/mesa/main/context.o 
../../../../../lib/GL/mesa/main/convolve.o 
../../../../../lib/GL/mesa/main/debug.o 
../../../../../lib/GL/mesa/main/depth.o 
../../../../../lib/GL/mesa/main/dlist.o 
../../../../../lib/GL/mesa/main/drawpix.o 
../../../../../lib/GL/mesa/main/enable.o 
../../../../../lib/GL/mesa/main/enums.o  ../../../../../lib/GL/mesa/main/eval.o 
../../../../../lib/GL/mesa/main/extensions.o 
../../../../../lib/GL/mesa/main/feedback.o 
../../../../../lib/GL/mesa/main/fog.o  ../../../../../lib/GL/mesa/main/get.o 
../../../../../lib/GL/mesa/main/hash.o  ../../../../../lib/GL/mesa/main/hint.o 
../../../../../lib/GL/mesa/main/histogram.o 
../../../../../lib/GL/mesa/main/image.o 
../../../../../lib/GL/mesa/main/imports.o 
../../../../../lib/GL/mesa/main/light.o 
../../../../../lib/GL/mesa/main/lines.o 
../../../../../lib/GL/mesa/main/matrix.o 
../../../../../lib/GL/mesa/main/occlude.o 
../../../../../lib/GL/mesa/main/pixel.o 
../../../../../lib/GL/mesa/main/points.o 
../../../../../lib/GL/mesa/main/polygon.o 
../../../../../lib/GL/mesa/main/rastpos.o 
../../../../../lib/GL/mesa/main/state.o 
../../../../../lib/GL/mesa/main/stencil.o 
../../../../../lib/GL/mesa/main/texcompress.o 
../../../../../lib/GL/mesa/main/texcompress_fxt1.o 
../../../../../lib/GL/mesa/main/texcompress_s3tc.o 
../../../../../lib/GL/mesa/main/texformat.o 
../../../../../lib/GL/mesa/main/teximage.o 
../../../../../lib/GL/mesa/main/texobj.o 
../../../../../lib/GL/mesa/main/texstate.o 
../../../../../lib/GL/mesa/main/texstore.o 
../../../../../lib/GL/mesa/main/varray.o 
../../../../../lib/GL/mesa/main/vtxfmt.o 
../../../../../lib/GL/mesa/array_cache/ac_context.o 
../../../../../lib/GL/mesa/array_cache/ac_import.o 
../../../../../lib/GL/mesa/math/m_debug_clip.o 
../../../../../lib/GL/mesa/math/m_debug_norm.o 
../../../../../lib/GL/mesa/math/m_debug_xform.o 
../../../../../lib/GL/mesa/math/m_eval.o 
../../../../../lib/GL/mesa/math/m_matrix.o 
../../../../../lib/GL/mesa/math/m_translate.o 
../../../../../lib/GL/mesa/math/m_vector.o 
../../../../../lib/GL/mesa/math/m_xform.o 
../../../../../lib/GL/mesa/swrast/s_aaline.o 
../../../../../lib/GL/mesa/swrast/s_aatriangle.o 
../../../../../lib/GL/mesa/swrast/s_accum.o 
../../../../../lib/GL/mesa/swrast/s_alpha.o 
../../../../../lib/GL/mesa/swrast/s_alphabuf.o 
../../../../../lib/GL/mesa/swrast/s_auxbuffer.o 
../../../../../lib/GL/mesa/swrast/s_bitmap.o 
../../../../../lib/GL/mesa/swrast/s_blend.o 
../../../../../lib/GL/mesa/swrast/s_buffers.o 
../../../../../lib/GL/mesa/swrast/s_context.o 
../../../../../lib/GL/mesa/swrast/s_copypix.o 
../../../../../lib/GL/mesa/swrast/s_depth.o 
../../../../../lib/GL/mesa/swrast/s_drawpix.o 
../../../../../lib/GL/mesa/swrast/s_feedback.o 
../../../../../lib/GL/mesa/swrast/s_fog.o 
../../../../../lib/GL/mesa/swrast/s_imaging.o 
../../../../../lib/GL/mesa/swrast/s_lines.o 
../../../../../lib/GL/mesa/swrast/s_logic.o 
../../../../../lib/GL/mesa/swrast/s_masking.o 
../../../../../lib/GL/mesa/swrast/s_nvfragprog.o 
../../../../../lib/GL/mesa/swrast/s_pixeltex.o 
../../../../../lib/GL/mesa/swrast/s_points.o 
../../../../../lib/GL/mesa/swrast/s_readpix.o 
../../../../../lib/GL/mesa/swrast/s_span.o 
../../../../../lib/GL/mesa/swrast/s_stencil.o 
../../../../../lib/GL/mesa/swrast/s_texstore.o 
../../../../../lib/GL/mesa/swrast/s_texture.o 
../../../../../lib/GL/mesa/swrast/s_triangle.o 
../../../../../lib/GL/mesa/swrast/s_zoom.o 
../../../../../lib/GL/mesa/swrast_setup/ss_context.o 
../../../../../lib/GL/mesa/swrast_setup/ss_triangle.o 
../../../../../lib/GL/mesa/tnl/t_array_api.o 
../../../../../lib/GL/mesa/tnl/t_array_import.o 
../../../../../lib/GL/mesa/tnl/t_context.o 
../../../../../lib/GL/mesa/tnl/t_pipeline.o 
../../../../../lib/GL/mesa/tnl/t_save_api.o 
../../../../../lib/GL/mesa/tnl/t_save_loopback.o 
../../../../../lib/GL/mesa/tnl/t_save_playback.o 
../../../../../lib/GL/mesa/tnl/t_vb_fog.o 
../../../../../lib/GL/mesa/tnl/t_vb_light.o 
../../../../../lib/GL/mesa/tnl/t_vb_normals.o 
../../../../../lib/GL/mesa/tnl/t_vb_points.o 
../../../../../lib/GL/mesa/tnl/t_vb_program.o 
../../../../../lib/GL/mesa/tnl/t_vb_render.o 
../../../../../lib/GL/mesa/tnl/t_vb_texgen.o 
../../../../../lib/GL/mesa/tnl/t_vb_texmat.o 
../../../../../lib/GL/mesa/tnl/t_vb_vertex.o 
../../../../../lib/GL/mesa/tnl/t_vertex.o 
../../../../../lib/GL/mesa/tnl/t_vertex_c.o 
../../../../../lib/GL/mesa/tnl/t_vertex_codegen.o 
../../../../../lib/GL/mesa/tnl/t_vtx_api.o 
../../../../../lib/GL/mesa/tnl/t_vtx_eval.o 
../../../../../lib/GL/mesa/tnl/t_vtx_exec.o 
../../../../../lib/GL/mesa/tnl/t_vtx_generic.o 
../../../../../lib/GL/mesa/shader/arbprogparse.o 
../../../../../lib/GL/mesa/shader/arbprogram.o 
../../../../../lib/GL/mesa/shader/arbfragparse.o 
../../../../../lib/GL/mesa/shader/arbvertparse.o 
../../../../../lib/GL/mesa/shader/grammar_mesa.o 
../../../../../lib/GL/mesa/shader/nvprogram.o 
../../../../../lib/GL/mesa/shader/nvfragparse.o 
../../../../../lib/GL/mesa/shader/nvvertexec.o 
../../../../../lib/GL/mesa/shader/nvvertparse.o 
../../../../../lib/GL/mesa/shader/program.o
../../../../../lib/GL/mesa/sparc/sparc.o 
../../../../../lib/GL/mesa/sparc/xform.o 
../../../../../lib/GL/mesa/sparc/clip.o  ../../../../../lib/GL/mesa/sparc/norm.o
-L../../../../../exports/lib  -lXext -lX11 -lGL)
ld: fatal: too many symbols require `small' PIC references:
        have 2137, maximum 2048 -- recompile some modules -K PIC.
*** Error code 1
make: Fatal error: Command failed for target `libOSMesa.so.4.0'
Current working directory
/shared/bigtmp/xorg/work003/xc/lib/GL/mesa/drivers/osmesa
*** Error code 1
make: Fatal error: Command failed for target `all'
Current working directory /shared/bigtmp/xorg/work003/xc/lib/GL
*** Error code 1
make: Fatal error: Command failed for target `all'
Current working directory /shared/bigtmp/xorg/work003/xc/lib
*** Error code 1
make: Fatal error: Command failed for target `all'
Current working directory /shared/bigtmp/xorg/work003/xc
*** Error code 1
make: Fatal error: Command failed for target `World'
Current working directory /shared/bigtmp/xorg/work003/xc
*** Error code 1
make: Fatal error: Command failed for target `World'
-- snip --
Comment 1 Roland Mainz 2004-10-31 13:37:32 UTC
Created attachment 1195 [details] [review]
Possible fix (or workaround ?) for 2004-10-31-trunk

I am not sure whether this is really the right fix... Alan, Ajax ?
Comment 2 Adam Jackson 2004-10-31 14:14:55 UTC
if that change makes libOSMesa build then it's probably correct.
Comment 3 Roland Mainz 2004-10-31 14:38:44 UTC
ajax@nwnk.net wrote:
> if that change makes libOSMesa build then it's probably correct.

What about binary compatibility - is that something we have to worry about in
the libOSMesa case ?
Comment 4 Alan Coopersmith 2004-10-31 15:04:29 UTC
That's the fix I've been adding to other Mesa/GL Imakefiles everytime they add
enough symbols to go over the limit for the small pic tables.   Looks good to
me...
Comment 5 Roland Mainz 2004-10-31 15:06:55 UTC
Alan Coopersmith wrote:
> That's the fix I've been adding to other Mesa/GL Imakefiles everytime they add
> enough symbols to go over the limit for the small pic tables.   Looks good to
> me...

heh :)

----

Taking bug myself...
Comment 6 Roland Mainz 2004-10-31 15:18:26 UTC
Created attachment 1196 [details] [review]
[FIXED_X11R68x] Patch for 2004-10-31-trunk incl. Changelog comment
Comment 7 Roland Mainz 2004-10-31 15:23:17 UTC
Patch checked-in...

/cvs/xorg/xc/ChangeLog,v  <--  ChangeLog
the new argument format and remove '1's from your info file format strings.
/cvs/xorg/xc/lib/GL/mesa/drivers/osmesa/Imakefile,v  <--  Imakefile
new revision: 1.3; previous revision: 1.2
Mailing the commit message to xorg-commit@pdx.freedesktop.org...

... marking bug as FIXED.
Comment 8 Roland Mainz 2004-10-31 15:24:19 UTC
Comment on attachment 1196 [details] [review]
[FIXED_X11R68x] Patch for 2004-10-31-trunk incl. Changelog comment

Requesting approval for X11R6.8.2 ...
Comment 9 Adam Jackson 2004-10-31 16:33:01 UTC
(In reply to comment #3)
> What about binary compatibility - is that something we have to worry about in
> the libOSMesa case ?

yes, binary compatibility is an issue with libOSMesa, but the PIC-related
compiler and linker options do not change the calling convention in any way
that's visible to the application.  this change doesn't break the ABI.
Comment 10 Roland Mainz 2004-10-31 18:06:01 UTC
ajax@nwnk.net wrote:
> > (In reply to comment #3)
> > What about binary compatibility - is that something we have to worry about
> > in the libOSMesa case ?
>
> yes, binary compatibility is an issue with libOSMesa, but the PIC-related
> compiler and linker options do not change the calling convention in any way
> that's visible to the application.  this change doesn't break the ABI

Somewhere in my useless brain the alam bells still ring. I remember that at
least one platform had problems with such changes but I can't remember anymore
whether this was Solaris or something else... ;-/
Comment 11 Roland Mainz 2004-11-12 08:35:14 UTC
Comment on attachment 1196 [details] [review]
[FIXED_X11R68x] Patch for 2004-10-31-trunk incl. Changelog comment

Approved for checkin into X11R6.8.x in the 2004-11-12 release-wranglers call.
Comment 12 Roland Mainz 2004-12-14 19:17:09 UTC
Comment on attachment 1196 [details] [review]
[FIXED_X11R68x] Patch for 2004-10-31-trunk incl. Changelog comment

Patch checked-in into X11R6.8.x stable branch:

/cvs/xorg/xc/ChangeLog,v  <--  ChangeLog
new revision: 1.365.2.70; previous revision: 1.365.2.69
cvs commit: Using deprecated info format strings.  Convert your scripts to use
the new argument format and remove '1's from your info file format strings.
/cvs/xorg/xc/lib/GL/mesa/drivers/osmesa/Imakefile,v  <--  Imakefile
new revision: 1.2.2.1; previous revision: 1.2
cvs commit: Using deprecated info format strings.  Convert your scripts to use
the new argument format and remove '1's from your info file format strings.
Mailing the commit message to xorg-commit@lists.freedesktop.org...


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.