Skip navigation

Monthly Archives: March 2010

Random thought #1
- Can I have a step-by-step how-to…
- No.
- ..that works without any additional work?
- No.
- Do you always say “no”?
- Yes.

None: ode
1. A lyric poem with complex stanza forms

I have these chronic problems with missing or invalid header files. Today I’m going to deal with one of them.

Headers in question are X11/Xos.h and X11/Xfuncproto.h from my attempt to build firefox for mingw32. (Note that I have no idea what X11 is. And I suspect that X11 is something very obvious.). They are the missing dependency in several different files: cppsetup.c, include.c, parse.c, main.c, def.h.

It obviously looks like a group of source files that include the same header file def.h, that includes the missing headers X11/Xos.h and X11/Xfuncproto.h. So, I will go straight to def.h

def.h:
#ifndef NO_X11
#include <X11/Xos.h>
#include <X11/Xfuncproto.h>

Ok, this suggest that these are actually external headers, that I supposedly have under /usr/include/X11 or /usr/X11/include. So what is X11? X11 core headers? I feel like I’m missing something very obvious. However, after some time “poking” around, I think, I need xorg-x11-proto-devel package.

After installing it, I got my X11 headers under /usr/include/X11. And now I can continue with the firefox build.

A couple of days ago I was able to put together a working toolchain to compile windows binaries. Today I’m going to try and compile a firefox build with it.

First of all, I’m going to get a firefox build that passed unit tests. To do that, I need to go to tinderbox and look for “WINNT 5.2 mozilla-central build”. Next step is to find the latest successful source code revision.

Right now (March 21st, 5:35 pm GMT) the latest “green” revision is 1633e6077d77.

Since I already have mozilla-central source on my machine, I’m just going to update to this revision. Under mozilla-central folder:
hg pull
hg update -r 1633e6077d77

Read More »

Today I’m going to compile Firefox for Windows on a Linux box. And for that I’m not going to reinvent the wheel, but follow an existing guide.

This is what I’m going to need:

  • GNU Binutils – This is linker, assembler, and various other tools.
  • GCC 4.3 – I have GCC 4.4.3. I might have to install GCC 4.3, if GCC 4.4.3 doesn’t play well with Dehydra.
  • mingw-runtim, w32api, and Cygwin winsup – It has something to do with GCC cross compiler.
  • Netscape wintools – This is something that is need for some xpidl. A quick search reveals that it (might) stands for [X]Cross Platform Interface Definition Language.
  • And, off course, configuring Firefox build.
  1. binutils-2.18 surprisingly installed with no problems.
  2. Install mingw-runtime-3.14
  3. Same for w32api-3.11.
  4. Get GCC 4.3 source and winsup-src-20100315.

I had to get mpfr to install GCC, but other than that everything went without a problem.

Time to check the compiler:
[root@xxxxxx ~]# osd/mingw32/bin/i686-mingw32-gcc -v
Using built-in specs.
Target: i686-mingw32
Configured with: ../gcc-4.3.0/configure --prefix=/root/osd/mingw32/ --target=i686-mingw32 --with-gnu-ld --with-gnu-as --enable-__cxa_atexit --enable-languages=c,c++
Thread model: win32
gcc version 4.3.0 (GCC)

[root@xxxxxx ~]# osd/mingw32/bin/i686-mingw32-gcc test.c -o test.exe
[root@xxxxxx ~]# ls test*
test.c test.exe

On Windows:
C:\>test.exe
hello world!

I’m almost ready to build Firefox.

Thunderbird is an email application from Mozilla. It happened to have a bug where it highlights false email addresses with “mailto” tags. For example, it would highlight “a@a…”, which is clearly an invalid email address. I’m going to try to fix it.

It’s going to be a nice distraction from my Mac adventure

Here is the plan for bullet point lovers:

  1. Register on landfill and file the bug
  2. Get Thunderbird source code and build a debug build
  3. Find where and whan needs to be fixed
  4. Submit a diff to my bug report
  5. Get someone to review it

Read More »

Follow

Get every new post delivered to your Inbox.