While compiling a 3rd party library last night, I ran into a case where
the linker kept growing until it consumed all available memory and my
system died (around 6GB+). The line where it died was this one:
/opt/sunstudio12.1/bin/CC -G -hlibode.so.1 -o .libs/libode.so.1.1.1
.libs/array.o .libs/box.o .libs/capsule.o .libs/collision_cylinder_box.o
.libs/collision_cylinder_plane.o .libs/collision_cylinder_sphere.o
.libs/collision_kernel.o .libs/collision_quadtreespace.o
.libs/collision_sapspace.o .libs/collision_space.o
.libs/collision_transform.o .libs/collision_trimesh_disabled.o
.libs/collision_util.o .libs/convex.o .libs/cylinder.o .libs/error.o
.libs/export-dif.o .libs/heightfield.o .libs/lcp.o .libs/mass.o
.libs/mat.o .libs/matrix.o .libs/memory.o .libs/misc.o .libs/obstack.o
.libs/ode.o .libs/odeinit.o .libs/odemath.o .libs/plane.o
.libs/quickstep.o .libs/ray.o .libs/rotation.o .libs/sphere.o
.libs/step.o .libs/stepfast.o .libs/testing.o .libs/timer.o .libs/util.o
.libs/collision_trimesh_trimesh.o .libs/collision_trimesh_trimesh_new.o
.libs/collision_trimesh_sphere.o .libs/collision_trimesh_ray.o
.libs/collision_trimesh_opcode.o .libs/collision_trimesh_box.o
.libs/collision_trimesh_ccylinder.o .libs/collision_trimesh_distance.o
.libs/collision_cylinder_trimesh.o .libs/collision_trimesh_plane.o
-zallextract ./.libs/libfast.a joints/.libs/libjoints.a
../../OPCODE/.libs/libOPCODE.a ../../OPCODE/Ice/.libs/libIce.a
-zdefaultextract -lX11 -library=stdcxx4 -lsunmath -lpthread -lc -lm
-lCrun -lstdcxx4 -Qoption ld -zignore -Qoption ld -zcombreloc -Qoption
ld -Bdirect
I'm on build 139 and I've tried both sunstudio12u1 from the repository
as well as the CBE version of sunstudio12.1 that's offered from
opensolaris.org pre-patched.
I grabbed a core the second time around when it hit around 3GB in
process size and dumped a quick pstack:
core 'core.zeddicus.ld.101.28010' of 28010: /usr/ccs/bin/ld
-zld32=-S/tmp/lib_base_link.1274383539.28009/libldstab
ffffdd7fffcbc6ca __write () + a
ffffdd7fffc856d8 fputs () + 230
00000000004020d3 eprintf () + f3
ffffdd7fffaf0ee5 sym_tworeals () + f5
ffffdd7fffaf206c ld32_sym_resolve () + 274
ffffdd7fffafe2f2 ld32_sym_process () + 168a
ffffdd7fffadbc82 process_elf () + d42
ffffdd7fffadc33d ld32_process_ifl () + 475
ffffdd7fffad64af archive_input () + 5f
ffffdd7fffad6b77 archive_extract_all () + e7
ffffdd7fffad6ca4 ld32_process_archive () + ac
ffffdd7fffadc0e1 ld32_process_ifl () + 219
ffffdd7fffadc6ae ld32_process_open () + 96
ffffdd7fffad3014 process_files_com () + 144
ffffdd7fffad31ce ld32_process_files () + 56
ffffdd7fffad5884 ld32_main () + 42c
0000000000402ad9 main () + b9
0000000000401e8c ???????? ()
Any thoughts on how to debug this further?
Cheers,
-Shawn
_______________________________________________
tools-compilers mailing list
[email protected]