Closed
Bug 606989
Opened 14 years ago
Closed 13 years ago
configure.py fails on directories containing spaces
Categories
(Tamarin Graveyard :: Build Config, defect, P3)
Tracking
(Not tracked)
RESOLVED
FIXED
Q3 11 - Serrano
People
(Reporter: akruetzf, Assigned: pnkfelix)
Details
Attachments
(2 files)
2.13 KB,
patch
|
jsudduth
:
review+
|
Details | Diff | Splinter Review |
1.72 KB,
patch
|
jsudduth
:
review+
|
Details | Diff | Splinter Review |
python ../configure.py Generating /workspace/Linux TC Kvasir/build-ubuntu/Makefile... + make make: *** /workspace/Linux: Is a directory. Stop. The path should be quoted.
Updated•14 years ago
|
Assignee: nobody → jsudduth
Status: NEW → ASSIGNED
Target Milestone: --- → flash10.x - Serrano
Updated•14 years ago
|
Flags: flashplayer-qrb+
Comment 1•13 years ago
|
||
Let's knock this out.
Flags: flashplayer-triage+
Flags: flashplayer-injection-
Flags: flashplayer-bug-
Priority: -- → P3
Comment 2•13 years ago
|
||
It turned out to be more difficult than it looks. Just quoting the topsrcdir path in the make file doesn't work - the *.mk files called later ignore the quotes and don't treat topsrcdir as a whole path. Using '\' before each space leads to yet more errors in rules.mk when building the zlib stuff and on it goes. I need to consult with someone on other possible fixes.
Comment 3•13 years ago
|
||
Update: the problem isn't with configure.py. When I edit the make file produced by configure.py to include a "\" to escape the space in my top level folder it will compile successfully until it comes to /other-licenses/zlib/adler32.c, when it fires this error: *** No rule to make target `other-licenses/zlib/adler32.c', needed by `other-licenses/zlib/adler32.i'. Stop. This error usually means that make can't find some of the files it needs. This same code tree builds with no errors if the space is removed from the top folder. I'm researching ways around this problem but if anyone has any ideas I'd appreciate hearing them. BTW: quoting the path doesn't even allow make to get as far as the zlib stuff; it just sees the path as being in two parts, split at the space, and fails.
Assignee | ||
Comment 4•13 years ago
|
||
(In reply to comment #3) > Update: the problem isn't with configure.py. When I edit the make file produced > by configure.py to include a "\" to escape the space in my top level folder it > will compile successfully until it comes to /other-licenses/zlib/adler32.c, > when it fires this error: > > *** No rule to make target `other-licenses/zlib/adler32.c', needed by > `other-licenses/zlib/adler32.i'. Stop. > > This error usually means that make can't find some of the files it needs. This > same code tree builds with no errors if the space is removed from the top > folder. I'm researching ways around this problem but if anyone has any ideas > I'd appreciate hearing them. Maybe its an issue with how VPATH is being set in this case? I spent some time recently learning more about make to resolve the -j2 issues, so I can probably be helpful on this.
Assignee | ||
Comment 5•13 years ago
|
||
Some references that may be useful: GNU Make meets file names with spaces in them http://www.cmcrossroads.com/ask-mr-make/7859-gnu-make-meets-file-names-with-spaces-in-them GNU Make path handling http://www.cmcrossroads.com/ask-mr-make/9842-gnu-make-path-handling
Assignee | ||
Comment 6•13 years ago
|
||
Another option: one might be able to work-around this (sort of) by using a relative path out of the objdir when setting topsrcdir, rather than using an absolute path to the top source dir. e.g., if you've checked out to: /home/fklockii/tamarin and are doing a build in: /home/fklockii/tamarin/sub/objdir and thus the Makefile is in: /home/fklockii/tamarin/sub/objdir/Makefile then you might get away with: topsrcdir := ../.. rather than: topsrcdir := /home/fklockii/tamarin Its not a very satisfying solution, but I suspect its easier to people to change the local objdir to be space-free than it is for them to change the path to their home directory to be space-free.
Comment 7•13 years ago
|
||
Using a top folder named 'tamarin-redux 606989' and setting topsrcdir in the make file to '..' works for compiling, but at link time I get: 606989/platform/mac/avmshell/exports.exp: No such file or directory make: *** [shell/avmshell] Error 1 So it looks like the linker is also going to fail with spaces in the top folder path.
Assignee | ||
Comment 8•13 years ago
|
||
That was easy to fix. I'll be posting a patch shortly.
Assignee | ||
Comment 9•13 years ago
|
||
Jim: I did not put this patch through its paces yet. I'll start a sandbox build with it now. (I would have made this a Feedback request rather than a Review request, but I figure if you R+ it and the sandbox is clean, then I might as well push.)
Attachment #519953 -
Flags: review?(jsudduth)
Comment 10•13 years ago
|
||
When I apply the patch, make a makefile with configure.py then do 'make' I get a lot of these messages: /Developer/usr/bin/ranlib: file: libMMgc.a(GCTests.o) has no symbols /Developer/usr/bin/ranlib: file: libMMgc.a(GCThreads.o) has no symbols
Comment 11•13 years ago
|
||
BTW: I also tried generating the make file with '--enable-debug' but still got the messages about no symbols.
Assignee | ||
Comment 12•13 years ago
|
||
(In reply to comment #10) > When I apply the patch, make a makefile with configure.py then do 'make' I get > a lot of these messages: > > /Developer/usr/bin/ranlib: file: libMMgc.a(GCTests.o) has no symbols > /Developer/usr/bin/ranlib: file: libMMgc.a(GCThreads.o) has no symbols I see these messages before the patch.
Assignee | ||
Comment 13•13 years ago
|
||
(In other news, my sandbox build failed because the patch uses the Python method os.path.relpath, which was introduced in Python 2.6 but some of our clients are currently on Python 2.5.)
Comment 14•13 years ago
|
||
(In reply to comment #12) > (In reply to comment #10) > > When I apply the patch, make a makefile with configure.py then do 'make' I get > > a lot of these messages: > > > > /Developer/usr/bin/ranlib: file: libMMgc.a(GCTests.o) has no symbols > > /Developer/usr/bin/ranlib: file: libMMgc.a(GCThreads.o) has no symbols > > I see these messages before the patch. Ah yes, so do I now that I tried it out. I'm pretty sure they weren't there a while back, however, so I guess we need to find out why they've appeared.
Updated•13 years ago
|
Attachment #519953 -
Flags: review?(jsudduth) → review+
Assignee | ||
Updated•13 years ago
|
Assignee: jsudduth → fklockii
Assignee | ||
Updated•13 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Comment 15•13 years ago
|
||
changeset: 6110:bce64695eeb0 user: Felix S Klock II <fklockii@adobe.com> summary: Bug 606989: work around spaces in topsrcdir abs path via rel path (r=jsudduth). http://hg.mozilla.org/tamarin-redux/rev/bce64695eeb0
Assignee | ||
Comment 16•13 years ago
|
||
Small drive-by cleanup while investigating a gdb source resolution issue. (Perhaps the more important addition is that it also checks that the result path, be it absolute or relative, and signals failure if it contains spaces. Even if you don't approve of the new configure.py option being implicitly added here, I'd still want to add the validity check.)
Attachment #552660 -
Flags: review?(jsudduth)
Updated•13 years ago
|
Attachment #552660 -
Flags: review?(jsudduth) → review+
You need to log in
before you can comment on or make changes to this bug.
Description
•