sam@think.UUCP (03/27/87)
Index: bin/ld.c 4.3BSD Description: The command ar r archive file_with_name_longer_than_14_characters will silently fail to replace that file in archive if it is already present there. This bug is present in Mt. Xinu 4.3BSD and in Ultrix X2.0, but it is NOT present in Sun 3.2. Repeat-By: Here is a script of a demonstration of the problem. ranlib isn't used in this example purposely, because ranlib has nothing to do with the problem. % cat > Makefile a.out: t.o l.a $(CC) t.o l.a l.a: longnameindeed.o ar r l.a longnameindeed.o % cat > t.c main(){ f(); } % cat > longnameindeed.c f(){ printf("OLD\n"); } % make cc -c longnameindeed.c ar r l.a longnameindeed.o ar: filename longnameindeed.o truncated to longnameindeed. ar: creating l.a cc -c t.c cc t.o l.a ld:l.a: warning: archive has no table of contents; add one using ranlib(1) % a.out OLD % cat > longnameindeed.c f(){ printf( "NEW\n" ); } % make cc -c longnameindeed.c ar r l.a longnameindeed.o ar: filename longnameindeed.o truncated to longnameindeed. cc t.o l.a ld:l.a: warning: archive has no table of contents; add one using ranlib(1) % a.out # should say NEW, but says OLD OLD % cc t.o longnameindeed.o % a.out NEW % --- Sam Kendall sam@Think.COM Thinking Machines Corp. {seismo,ihnp4}!think!sam