Opened 10 years ago

Closed 9 years ago

Last modified 9 years ago

#20 closed enhancement (fixed)

Build system enhancements

Reported by: ydario Owned by:
Priority: major Milestone: Beta1
Component: wrapper Version: Technology Preview 1
Severity: Keywords:

Description (last modified by Silvan Scherrer)

the makefile needs to be changed to kmk, as the current one is not so nice

Change History (10)

comment:1 Changed 10 years ago by ydario

(changeset:18) No more absolute paths in build, create also .sym file.

(changeset:19) Now odin files are loaded from external package, named 'odin-flash10.wpi'; version moved to 0.1.1

comment:2 Changed 10 years ago by Silvan Scherrer

is this ticket now to be closed? or do you plan to enhance it more?

comment:3 Changed 9 years ago by Silvan Scherrer

Description: modified (diff)

comment:4 Changed 9 years ago by dmik

kBuild infrastructure is there. Started porting to GCC. All the work is done on the gcc-kmk branch. Learning plugin internals in parallel.

comment:5 Changed 9 years ago by dmik

I ported the code and it builds with GCC444 but not with GCC446. The latter complains with:

unable to find a register to spill in class 'CLOBBERED_REGS'

when compiling mozPR_AttachThread() and other moz* calls which internally call _Optlink functions. GCC444 works because _Optlink was almost completely misused and ignored there, while in GCC446 it is not. The matter of _Optlink is that it uses upto 3 registers (EAX, ECX, EDX) to pass parameters but it seems that GCC doesn't feel okay with that in certain situations.

I need to check if we really need _Optlink there at all. For that I need the actual Mozilla sources with OS/2 patches.

comment:7 Changed 9 years ago by dmik

We get some issues with the GCC Odin when it comes to loading KERNEL32.DLL to the Mozilla process (see This needs to be resolved first before continuing with the plugin.

comment:8 Changed 9 years ago by dmik

Resolution: fixed
Status: newclosed

The problem is resolved. Flash is now built with GCC and even works. I will now test it under different circumstances.

I will report issues that I find in separate defects.

comment:9 Changed 9 years ago by abwillis

I believe the _Optlink is still used for plugins because at the time that the build was switched to GCC for Mozilla we didn't want to break existing plugins. To my knowledge this was never changed.

comment:10 Changed 9 years ago by dmik

I checked the Mozilla sources and they currently use the OSCALL calling convention for plugin APIs which is defined as _System on OS/2 now.

Note: See TracTickets for help on using tickets.