Closed
Bug 11988
Opened 26 years ago
Closed 21 years ago
Fix makecopy to use symlinks instead of copying (win32)
Categories
(SeaMonkey :: Build Config, defect, P3)
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: jband_mozilla, Assigned: dveditz)
Details
If I touch a .cpp file and rebuild my dll then Autoregistration will not
re-register the dll the next time the app is run. However, it does do so the
time after...
{my tree is a couple of days old]
[x:\raptor\mozilla\js\src\xpconnect\src]xpcshell
nsComponentManager: Autoregistration begins. dir = X:\RAPTOR\MOZILLA\DIST\WIN32_
D.OBJ\BIN\components
nsComponentManager: Autoregistration ends. dir = X:\RAPTOR\MOZILLA\DIST\WIN32_D.
OBJ\BIN\components
js>
^C
[x:\raptor\mozilla\js\src\xpconnect\src]touch nsXPConnect.cpp
8/16/99 16:15:12 X:\raptor\mozilla\js\src\xpconnect\src\nsXPConnect.cpp
[x:\raptor\mozilla\js\src\xpconnect\src]nmake -f makefile.win
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
nsXPConnect.cpp
+++ make: Creating DLL: .\WIN32_D.OBJ\xpc3250.dll
Symlinking .\WIN32_D.OBJ\xpc3250.dll into ..\..\..\..\dist\WIN32_D.OBJ\bin\c
omponents\xpc3250.dll
[x:\raptor\mozilla\js\src\xpconnect\src]xpcshell
nsComponentManager: Autoregistration begins. dir = X:\RAPTOR\MOZILLA\DIST\WIN32_
D.OBJ\BIN\components
nsComponentManager: Autoregistration ends. dir = X:\RAPTOR\MOZILLA\DIST\WIN32_D.
OBJ\BIN\components
js>
^C
[x:\raptor\mozilla\js\src\xpconnect\src]xpcshell
nsComponentManager: Autoregistration begins. dir = X:\RAPTOR\MOZILLA\DIST\WIN32_
D.OBJ\BIN\components
*** Register XPConnect
nsComponentManager: Autoregistration ends. dir = X:\RAPTOR\MOZILLA\DIST\WIN32_D.
OBJ\BIN\components
js>
^C
[x:\raptor\mozilla\js\src\xpconnect\src]
Updated•26 years ago
|
Status: NEW → ASSIGNED
Target Milestone: M10
Comment 1•26 years ago
|
||
This might have something to do with linking dlls as opposed to copying them on
windows.
Dan what would the modified date on a link be. Would it be the same as the
original file it points to.
It is wierd why it works the second time though.
| Reporter | ||
Comment 2•26 years ago
|
||
funny - I was amending the bug to cc dan and add a similar comment to dp's
above.
| Reporter | ||
Comment 3•26 years ago
|
||
a couple more data points that make me suspect this symlink stuff...
after making I can not copy the real dll over the symlink:
X:\>copy \raptor\mozilla\js\src\xpconnect\src\WIN32_D.OBJ\xpc3250.dll \raptor\mo
zilla\dist\WIN32_D.OBJ\bin\components
The process cannot access the file because
it is being used by another process.
0 file(s) copied.
If I touch, make, delete symlink in components dir, copy dll to components dir
from build dir, and then run: I see the registration happen as expected.
| Assignee | ||
Comment 4•26 years ago
|
||
Boy, that's too bad. The Symlinking saves build time and space. But it's a
strange Posix-compliance feature and I guess not too surprising not everything
plays nice with it. It's definitely a link because you can edit a text file
and have the changes show up in the linked file (going both ways on the link).
But some of the directory information and utilities seem to get confused since
they don't know all that much about the Posix layer.
Eventually I was planning on changing DLL exports to a separate rule, which we
could then tweak to turn off Symlinking for that rule only. Meanwhile if you
want to turn it off go to mozilla/config/config.mak and find the definition of
MAKE_INSTALL. Remove the -s option.
| Reporter | ||
Comment 5•26 years ago
|
||
Removing the -s made this problem go away for me. I think that lots of people
might waste time chasing spurious bugs if we leave this as it is. However, just
removing the -s without blowing away the existing symlinks causes makecopy to
fail. If we turn off the -s we have to tell people to blow away their (entire?)
dist dirs and rebuilt. Is there a less painful solution that anyone can think
of?
Updated•26 years ago
|
Assignee: dp → dveditz
Status: ASSIGNED → NEW
Comment 6•26 years ago
|
||
Dan we got to fix this soon Like soon after the tree opens. Requiring clobber is
fine. People will do that anyway for M10
| Assignee | ||
Comment 7•26 years ago
|
||
I turned off symlinking.
I'm not going to mark this "fixed" because I want to fix the makecopy tool and
then turn symlinking back on.
| Assignee | ||
Updated•26 years ago
|
Target Milestone: M10 → M14
| Assignee | ||
Comment 8•26 years ago
|
||
remember this later, no time before beta
Updated•26 years ago
|
QA Contact: beppe → dp
Pushing way out, saving build space is not a beta requirement :-)
Summary: dll not registered on first run after modified → Fix makecopy to use symlinks instead of copying
Target Milestone: M14 → M17
| Assignee | ||
Updated•26 years ago
|
Status: NEW → ASSIGNED
Comment 11•25 years ago
|
||
dp is no longer @netscape.com. changing qa contact to default for this product
QA Contact: dp → kandrot
| Assignee | ||
Comment 12•24 years ago
|
||
Fixing component
Component: XPCOM → Build Config
QA Contact: kandrot → leaf
Summary: Fix makecopy to use symlinks instead of copying → Fix makecopy to use symlinks instead of copying (win32)
| Assignee | ||
Comment 13•21 years ago
|
||
We no longer use the makecopy tool in windows, we share nsinstall.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → WONTFIX
Updated•21 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•