Closed Bug 440703 Opened 16 years ago Closed 16 years ago

Add --disable-target-xpidl to Mozilla

Categories

(Firefox Build System :: General, enhancement)

x86
Windows XP
enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: Techrazy.Yang, Unassigned)

Details

Attachments

(1 file)

When cross compile Mozilla from Linux for Windows platform, making a target xpidl is not an easy thing. You need to cross compile glib and then libIDL. And you also should tell some pkg-config where can find the include and libraries files.

   Sometime, such as doing a statically analysis for Windows code on a Linux platform using cross compiling, it is not necessary to make a target XPIDL. So, I think it is better to add a new --disable-target-xpidl option to Mozilla configure.
Attachment #325972 - Flags: review?(ted.mielczarek)
FYI, you don't have to cross-compile glib/libIDL yourself.  You can just install the headers & pre-built libs from the moztools.zip onto your development machine and point configure to the proper path.
(In reply to comment #1)
> FYI, you don't have to cross-compile glib/libIDL yourself.  You can just
> install the headers & pre-built libs from the moztools.zip onto your
> development machine and point configure to the proper path.
> 
Thank you, cls!
I have try to specify the Headers and libs with LIBIDL_CFLAGS LIBIDL_LIBS. But the compile system still failed to find them. I think some other configure override the two variable when cross compile. 
Since win32 doesn't come with a glib-config or libIDL-config, try setting GLIB_PREFIX & LIBIDL_PREFIX instead.
(In reply to comment #3)
> Since win32 doesn't come with a glib-config or libIDL-config, try setting
> GLIB_PREFIX & LIBIDL_PREFIX instead.
> 

And could you please what should under the $GLIB_PREFIX and $LIBIDL_PREFIX? An include directory and a library directory?
[cls@skylynx ~]$ grep _PREFIX ~/.mozconfig-x-mingw-ff
GLIB_PREFIX=/usr/i686-mingw32/moztools
LIBIDL_PREFIX=/usr/i686-mingw32/moztools
[cls@skylynx ~]$ find /usr/i686-mingw32/moztools
/usr/i686-mingw32/moztools
/usr/i686-mingw32/moztools/include
/usr/i686-mingw32/moztools/include/libIDL
/usr/i686-mingw32/moztools/include/libIDL/IDL.h
/usr/i686-mingw32/moztools/include/config.h
/usr/i686-mingw32/moztools/include/glibconfig.h
/usr/i686-mingw32/moztools/include/acconfig.h
/usr/i686-mingw32/moztools/include/glib.h
/usr/i686-mingw32/moztools/lib
/usr/i686-mingw32/moztools/lib/gthread-1.2.lib
/usr/i686-mingw32/moztools/lib/gmodule-1.2.dll
/usr/i686-mingw32/moztools/lib/libIDL-0.6.lib
/usr/i686-mingw32/moztools/lib/gthread-1.2.dll
/usr/i686-mingw32/moztools/lib/libIDL-0.6.dll
/usr/i686-mingw32/moztools/lib/glib-1.2.lib
/usr/i686-mingw32/moztools/lib/glib-1.2.dll
/usr/i686-mingw32/moztools/lib/gmodule-1.2.lib
(In reply to comment #5)
> [cls@skylynx ~]$ grep _PREFIX ~/.mozconfig-x-mingw-ff
> GLIB_PREFIX=/usr/i686-mingw32/moztools
> LIBIDL_PREFIX=/usr/i686-mingw32/moztools
> [cls@skylynx ~]$ find /usr/i686-mingw32/moztools
> /usr/i686-mingw32/moztools
> /usr/i686-mingw32/moztools/include
> /usr/i686-mingw32/moztools/include/libIDL
> /usr/i686-mingw32/moztools/include/libIDL/IDL.h
> /usr/i686-mingw32/moztools/include/config.h
> /usr/i686-mingw32/moztools/include/glibconfig.h
> /usr/i686-mingw32/moztools/include/acconfig.h
> /usr/i686-mingw32/moztools/include/glib.h
> /usr/i686-mingw32/moztools/lib
> /usr/i686-mingw32/moztools/lib/gthread-1.2.lib
> /usr/i686-mingw32/moztools/lib/gmodule-1.2.dll
> /usr/i686-mingw32/moztools/lib/libIDL-0.6.lib
> /usr/i686-mingw32/moztools/lib/gthread-1.2.dll
> /usr/i686-mingw32/moztools/lib/libIDL-0.6.dll
> /usr/i686-mingw32/moztools/lib/glib-1.2.lib
> /usr/i686-mingw32/moztools/lib/glib-1.2.dll
> /usr/i686-mingw32/moztools/lib/gmodule-1.2.lib

Yeah, thank you very much! 
If this lets you work around this problem, I'd rather not take the patch. Are you ok with that?
(In reply to comment #7)
> If this lets you work around this problem, I'd rather not take the patch. Are
> you ok with that?
> 

Yes, this indeed solve the compile and linkage problem. But the users should also copy the corresponding glib and idl dll to the Windows machine to make sure the xpidl.exe can run happily. I think the --disable-target-xpidl maybe necessary. 
Well, --disable-target-xpidl would make it so that you don't wind up with an xpidl.exe at all, so how is that any better than winding up with an xpidl.exe that you need some extra DLLs to use?
(In reply to comment #9)
> Well, --disable-target-xpidl would make it so that you don't wind up with an
> xpidl.exe at all, so how is that any better than winding up with an xpidl.exe
> that you need some extra DLLs to use?
I think, for the people, who really need xpidl.exe, he will be happy to copy some extra DLLs to make a workable xpidl.exe. But for those, who does not need one, it is more friendly to see no xpidl.exe than a not workable application. 
Attachment #325972 - Flags: review?(ted.mielczarek) → review-
I don't think it's worth doing this if you have a workaround.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → WONTFIX
Component: Build Config → General
Product: Firefox → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: