tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ar "zero" flag



In article <5491AE6B-EA56-48F2-AEAF-1CE70FA71D9F%shagadelic.org@localhost>,
Jason Thorpe  <thorpej%shagadelic.org@localhost> wrote:
>
>On Aug 4, 2008, at 4:30 PM, Perry E. Metzger wrote:
>
>Perry privately asked me to comment on this, and I've been thinking  
>about it for a bit now and have formulated a response :-)
>
>As a short-term step, I don't object to the "zeroize" flag in  
>principle.  However, issues like this as well as issues with threads,  
>full-feature functionality, backwards-compatibility, etc. have led me  
>to conclude that it's time to deprecate static linking on our system[1].
>
>I would like to propose that for NetBSD 6, we stop shipping .a, _p.a,  
>and _pic.a versions of system libraries, instead providing only  
>standard and profiling versions of the shared libraries (and maybe not  
>even separate profiling versions, if we can figure out a way to make  
>profiling work with the standard versions without any significant  
>performance impact in the non-profiled case).
>
>This would basically eliminate the need for an ar(1) "zeroize"  
>flag[2], because, if archives are not shipped, the metadata content of  
>those archives does not matter.  We of course would continue to  
>support archive libraries in the toolchain, and linking against them  
>for things like private libraries used by applications, or 3rd-party  
>libraries.  But linking against system libraries should all be dynamic.
>
>[1] Obviously we would need to continue to support static linking on  
>platforms that don't have dynamic linking.  Since we no longer have  
>ns32k, that basically means mc68010 (sun2).
>
>[2] Because of [1] and crunch, we'd probably need to continue to have  
>a "zeroize" flag in ar(1) for the same reasons we need it in the short  
>term.  However, going forward, I'd like to see us move away from  
>crunch to dynamically-linked install media.

I don't object to the elimination of static binaries (although it would
be nice to still support being able to build them; this is wishful thinking
because the code will bit-rot), but I think that eliminating _pic.a is
a bad idea because it makes it impossible for a developer who does not
want to re-build the system, to alter the system libraries. I have used
this feature numerous times on other system to repair problems.

christos



Home | Main Index | Thread Index | Old Index