Re: Firefox build problem: GetVisibility__C7nsIView undefined (Linux/PPC)
[email protected] (Steve Summit) 29 Oct 2005 18:19:56 GMT
| Newsgroups | gmane.comp.mozilla.devel.unix |
|---|---|
| Organization | noitazinagrO |
| Message-ID | <[email protected]> |
[Bottom line: I got it to work. Thanks for your help, Christian. Answers to your questions and further details below, for the curious.] Christian Biesinger wrote: >Steve Summit wrote: >> Yes. (2.95.3.) >> >> (I hooooooope you're not gonna say, "Well, there's your problem", >> because I reeeeeeeeeally don't wanna upgrade my whole compiler. >> I'll probably go back to FF 1.0.5 in that case, because it built >> and ran fine with this compiler.) > > Well... I didn't think that 1.0.5 vs 1.0.7 should make that difference. I wouldn't have thought so, either. > It is known, though, that GCC 2.95.3 causes that problem. Okay, that's good to know. Thanks. (And despite my (mock) whiny tone above, I am going to try and see if I can't upgrade.) If it's known, I wonder if it's documented anywhere? My web searches, before I started posting about this problem, weren't turning up anything. (But I was searching specifically on "GetVisibility" and "GetVisibility__C7nsIView". Perhaps the problem is more general than that, and only happened to crop up on that particular symbol for me.) If you have pointers to any information on what the 2.95.3 problem specifically was, I'd be curious. > Is it possible that your 1.0.5 build was a static build, while > your 1.0.7 one wasn't? That's a good question. I wondered about that, too. I'm pretty sure the older build was not static; I'm pretty sure that, based on the recommendation "unless your machine has a lot of RAM, this option is not for you... 512MB RAM minimum, 1G recommended" on the build options page, I had shied away from that option. The working 1.0.5 binary I used to have was not large, and it did take a long time to start up. (That's funny; the working 1.0.5 binary I used to have was less than a tenth the size of my non-working 1.0.7 binary: 128k vs. 1.6 meg.) (Funnier still: I do have a backup of the older, working 1.0.5 binary; I just don't have a backup of its support libraries. When I try running it in the context of the 1.0.7 libraries, it fails in exactly the same way, on GetVisibility__C7nsIView. Huh.) I can see that there's a good chance that I built the working 1.0.5 version with some substantially different options. I don't have the .mozconfig file I used then, but I do know how big it was, and it was bigger than any of the .mozconfig files I've used with 1.0.7, bigger even than the example .mozconfig file in Configuring_Build_Options.html. But anyway, after playing around with a couple of other options (including --enable-default-toolkit, which seemed promising, since it's not clear whether that's optional or required) without success, I finally left a static build running overnight last night. And... it works! It starts up much quicker, too, and it doesn't seem to be killing my machine on RAM usage, either. (Oh: the warning was that you wanted 512MB to 1G of RAM on your *build* machine! Come to think of it, that makes more sense anyway. I've only got 256MB, but I've got 1G of swap. Perhaps the machine thrashed itself to near-insensibility last night, but I don't care; I was soundly insensible at the time, myself, and the results are what counts.) One last comment, in case any Firefox developers or documenters are listening: besides listing the known problem with gcc 2.95.3 somewhere if that's missing, someone might want to change the wording on Configuring_Build_Options.html that currently says of --enable-default-toolkit that it: Selects the graphics toolkit. This is not needed for Windows/OS2/BeOS/Photon, since these platforms automatically select the correct toolkit. It is also not needed on Mac, unless you are building Camino... The implication is that the option *is* needed on Unix, and for a while I was convinced that this might be related to my problem. (Alas, explicitly specifying a default toolkit didn't help.) But apparently it's optional on Unix, too, and in fact the example Firefox .mozconfig file on that same page doesn't use it, and that's the file I ended up using to build my working static version. Anyway, the documentation should probably say that the option is optional on Unix, too, and also mention what the default default graphics toolkit is. Thanks again for your help, Christian. Steve Summit [email protected] P.S. If you're wondering, the reason this all came about, and why I have such tantalizingly incomplete information about my formerly-working 1.0.5 build, is that the 1.0.5 build was on a disk that got badly damaged in a crash. I hadn't backed the Firefox build directory up, because it was too big, and although I did manage to recover some other non-backed-up data from the damaged disk before I reformatted it, I didn't bother recovering the Firefox build directory, because it was time to download and build a newer version anyway, which would (or so I thought) be easier and more reliable than extracting the older sources from the damaged disk. I knew I hadn't modified anything in the 1.0.5 source tree, but I forgot about the .mozconfig file there. Actually, I did extract just the dist/bin directory from the damaged disk, which is why I have my 1.0.5 firefox-bin but not its support libraries, which in that directory are symbolic links. And the reason I know how big my old .mozconfig file was, without knowing what was in it, is because when I back up this machine, I back up basic size and mtime information about every file on the disk, including those files I don't bother to back up the contents of. (This strategy was designed so that I could frustrate myself with incomplete information in precisely such cases as this one. :-) )