Ehren's Blog

Firefox build issues with GCC 4.5

Posted in Seneca by ehren on November 23, 2009

I’ve hit a large snag with my project. Unfortunately, getting a plugin to work with the backported gcc 4.3.4 is not as straightforward as I had assumed. I badly misread the ifdefs in dehydra_plugin.c here, thinking I’d be able to define my own pass struct and hook it in like with 4.5. Oops.

As far as I can tell If I want to run my optimization with the patched 4.3 I’ll have to add my gimple manipulations to one of the callbacks used by Treehyhdra. This might be doable but I haven’t tried it. The alternative is to create another patch against 4.3.4, either adding a new pass, as with the plugin, or by trying a bit of conditional constant propagation hackery as with my 0.1. The solution may not be ideal in either case.

As an attempt to sidestep the issue, I’ve been attempting to get Firefox to compile with 4.5. I was a bit confused until asking on #gcc about what’s needed in the bug report. Namely whether I need to include only the preprocessed .ii version of the ‘problem file’ or whether I need preprocessed versions of every file in the directory, as I had seen with another report (especially since I can’t get the .ii file to compile independently). Someone informed me that the one .ii is enough and so here’s the new bug. So far no one’s bitten yet so I think I’ll have to reproduce the problem with the irrelevant functions from jsxml.cpp taken out.

Anyway, this bug can be sidestepped by turning down -O3 to -O0, but I’ve hit another issue during the linking of another file. Here’s the output. I’ve reproduced the issue with a development version of binutils as well but I’m thinking this is actually a Mozilla bug. I’ll have to consult with someone who would know.

On the analysis front, I’ve got something in the works about my recent travails with Treehydra but now that I’ve started to write it I think it needs it’s own post.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: