tech-toolchain archive

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

Stop shipping static libraries for NetBSD



[Starting as a new thread to get more attention to it, because I nearly deleted
it due too the fact that it was in the middle of another thread]

On Wed, Aug 06, 2008 at 02:25:20PM -0700, Jason Thorpe 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).

I object to such a change, because that would make it impossible to build
static binaries.

> 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.
> 
> >
> >The last big step to make builds fully reproduceable is to deal with
> >the fact that .a files contain date, user, group and permissions of
> >the original .o file that was packed into the .a
> >
> >Several people, including cgd, have independently suggested that a
> >flag to ar that said "zeroize the time, uid, etc., on packing" would
> >be appropriate. This would only be invoked for build.sh builds, and
> >appropriate logic would be put in to the makefiles or into make to
> >kludge around the fact that this would break the ability to update .a
> >files in situ in the build tree. (The kludge would be to remove the .a
> >file and rebuild it in the face of a .a file with zeroed timestamps,
> >which is not actually so bad.)
> >
> >If there are no objections in principle, I'll start working on it.
> >
> >Perry
> >-- 
> >Perry E. Metzger             perry%piermont.com@localhost
> 
> -- thorpej
> 


Home | Main Index | Thread Index | Old Index