Subject: bin/3539: Archive timestamps don't work on NetBSD/pmax
To: None <gnats-bugs@gnats.netbsd.org>
From: Ted Lemon <mellon@fugue.com>
List: netbsd-bugs
Date: 04/25/1997 14:21:23
>Number: 3539
>Category: bin
>Synopsis: Archive timestamps don't work on NetBSD/pmax
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: bin-bug-people (Utility Bug People)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Apr 25 14:35:03 1997
>Last-Modified:
>Originator: Ted Lemon
>Organization:
Vixie Enterprises
>Release: 4/25/1997
>Environment:
System: NetBSD toccata.fugue.com 1.2D NetBSD 1.2D (TOCCATA) #0: Thu Apr 24 00:39:46 PDT 1997 mellon@toccata.fugue.com:/NetBSD/current/current/sys/arch/i386/compile/TOCCATA i386
>Description:
NetBSD/pmax uses ELF archives, which aren't the same as the usual
NetBSD a.out archives. Make thinks it can read archives, and
bases its decision on whether an archive is out of date on data
internal to the archive. Because ELF archives have a different
format, make *always* thinks they're out of date. This causes
fairly annoying behaviour when building a system, and on some
packages (e.g., xntp), it causes stunningly pessimal behaviour.
>How-To-Repeat:
Type make in a library build directory somewhere. Type make again.
Make will build the library twice, even though nothing has changed.
>Fix:
Apply the following patch (or one like it).
A better fix would teach make to read ELF archives, but I don't
think it's worth the effort - I don't think anybody takes advantage
of make's ability to look inside of archives anymore.
Index: config.h
===================================================================
RCS file: /cvsroot/src/usr.bin/make/config.h,v
retrieving revision 1.7
diff -c -2 -r1.7 config.h
*** config.h 1996/11/06 17:59:03 1.7
--- config.h 1997/04/25 21:19:21
***************
*** 112,116 ****
#define SUNSHCMD
! #if !defined(__svr4__) && !defined(__SVR4)
# ifndef RANLIBMAG
# define RANLIBMAG "__.SYMDEF"
--- 112,116 ----
#define SUNSHCMD
! #if !defined(__svr4__) && !defined(__SVR4) && !defined (__mips)
# ifndef RANLIBMAG
# define RANLIBMAG "__.SYMDEF"
>Audit-Trail:
>Unformatted: