Closed Bug 649527 Opened 13 years ago Closed 13 years ago

libfoo.a not getting rebuilt when foo.o changes

Categories

(Firefox Build System :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: sfink, Unassigned)

Details

It is possible that this problem is fixed, but updating will destroy the evidence. I am at d10c089a6888 on tracemonkey.

% pwd
/home/sfink/src/TM-jitstack/obj/toolkit/mozapps/readstrings

% ls -l
-rw-rw-r-- 1 sfink sfink 15892 Mar 28 15:59 libreadstrings.a
-rw-rw-r-- 1 sfink sfink    81 Apr 12 12:36 libreadstrings.a.desc
-rw-rw-r-- 1 sfink sfink  2145 Dec 21 15:57 Makefile
-rw-rw-r-- 1 sfink sfink 15600 Apr 12 12:36 readstrings.o

% make -d | fgrep libreadst
  Considering target file `libreadstrings.a.desc'.
   Finished prerequisites of target file `libreadstrings.a.desc'.
   Prerequisite `readstrings.o' is older than target `libreadstrings.a.desc'.
   Prerequisite `Makefile' is older than target `libreadstrings.a.desc'.
   Prerequisite `/home/sfink/src/TM-jitstack/toolkit/mozapps/readstrings/Makefile.in' is older than target `libreadstrings.a.desc'.
   Prerequisite `../../../config/autoconf.mk' is older than target `libreadstrings.a.desc'.
   Prerequisite `/home/sfink/src/TM-jitstack/config/config.mk' is older than target `libreadstrings.a.desc'.
  No need to remake target `libreadstrings.a.desc'.

So libfoo.a.desc depends on foo.o, and gets updated properly, but libfoo.a itself never gets updated. The ultimate symptom, and what I saw from doing a toplevel make, is:

~/src/TM-jitstack/obj/toolkit/mozapps/update/test% make
...
TestAUSReadStrings.o: In function `main':
/home/sfink/src/TM-jitstack/toolkit/mozapps/update/test/TestAUSReadStrings.cpp:192: undefined reference to `ReadStrings(char const*, char const*, unsigned int, char (*) [400], char const*)'
/usr/bin/ld: TestAUSReadStrings: hidden symbol `ReadStrings(char const*, char const*, unsigned int, char (*) [400], char const*)' isn't defined

(The reason it's not defined is that the character array changed from size 200 to 400, and the test has the new value (400) but libreadstrings.a still contains the old.)
I think this is just fallout from bug 584474, and you need to clobber. That bug changed it so we don't actually build static libs anymore, just the .desc files (which just contain lists of object file names).
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → INVALID
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.