##################################################################### ## ## SeaMonkey 2.0.5 for AIX 5.1 ## ## Build platform: RS/6000 7044P 170 ## Compilers used: IBM XLC/C++ 8.0 (Patchlevel Aug 2007) ## Build date : May 5th 2010 ## BuildID : 20100505 ## Built by : Uli Link ( ul.mcamafia (-at-) linkitup.de ) ## Built from : changeset 1e0223b57404 tag SEAMONKEY_2_0_5_RELEASE ## plus attached patches ## ##################################################################### This build of SeaMonkey 2.0.5 was produced on a powerpc-ibm-aix5.1.0.0 platform, but configured to use the common processor model supporting all RS/6000 machines. It is a 32bit executable, so you'll need 32bit Java for using the Java plugin. It is tested to run on AIX 5.1ML09, AIX 5.2TL10 and AIX 5.3TL11. 256 MB RAM is absolute minimum, 512 MB recommended. TrueColour Display mandatory. For more detailed information visit my website: http://www.linkitup.de/ForAIX/Mozilla Questions about this build can be addressed to Uli Link ( ul.mcamafia (-at-) linkitup.de ). Any bugs or issues should be reported to the Mozilla Bugzilla site (http://bugzilla.mozilla.org). This README blatantly ripped off from the README for previous Solaris 8/GTK1 Seamonkey releases by Michael Kelleher. ##################################################################### ## COMPILERS AND LIBRARIES USED ##################################################################### The following tools/libraries were used during compilation: IBM AIX 5.1 with Maintenance Level 9 IBM XLC/C++ 8.0 with Aug 2007 service pack (8.0.0.16) and the following RPM packages r atk-1.12.3-1 atk-devel-1.12.3-1 r cairo-1.8.8-2 cairo-devel-1.8.8-2 r expat-1.95.7-4 expat-devel-1.95.7-4 r fontconfig-2.3.2-3 fontconfig-devel-2.3.2-3 r freetype2-2.3.9-2 freetype2-devel-2.3.9-2 r gettext-0.10.40-6 r glib2-2.12.4-1 glib2-devel-2.12.4-1 r gtk2-2.10.6-1 gtk2-devel-2.10.6-1 r libIDL-0.8.6-2 libIDL-devel-0.8.6-2 r libjpeg-6b-6 libjpeg-devel-6b-6 r libpng-1.2.8-5 libpng-devel-1.2.8-5 r libtiff-3.6.1-4 libtiff-devel-3.6.1-4 m4-1.4.1-1 make-3.80-1 r pango-1.14.5-1 pango-devel-1.14.5-1 r pixman-0.16.0-2 pixman-devel-0.16.0-2 pkg-config-0.19-1 renderproto-0.9.3-1 r xcursor-1.1.7-2 xcursor-devel-1.1.7-2 r xft-2.1.10-1 xft-devel-2.1.10-1 xorg-compat-aix-1.0-1 r xrender-0.9.4-1 zip-2.3-3 r zlib-1.2.3-1 zlib-devel-1.2.3-1 The RPMs marked with a leading (r) are needed for runtime, the others are needed at built-time only. Earlier versions for cairo (1.8.6), pixman(0.10.0), xrender/libXrender(0.8.4), xft/libXft (2.1.6) and xcursor/libXcursor (1.0.2) are expected to work, you may need to install with --nodeps flag. ##################################################################### ## INSTALLATION NOTES ##################################################################### * With root privileges run # # rpm -Uhv //seamonkey-2.0.5-1.aix*.ppc.rpm * Executables are dynamically linked against GTK2, but should not require the setting of any additional locations in LD_LIBRARY_PATH on a AIX 5.x installation. * No other special installation requirements should exist. ##################################################################### ## BUILD ENVIRONMENT AND COMMANDS ##################################################################### The following build environment and commands were used: $ CONFIG_SHELL=/usr/bin/bash $ CONFIGURE_ENV_ARGS=/usr/bin/bash $ LDFLAGS=-bh:5 $ export CONFIG_SHELL CONFIGURE_ENV_ARGS LDFLAGS $ gmake -f client.mk build $ cd $MOZ_OBJDIR $ gmake -C mail/installer and the following patch after unpacking the source tarball: ##################################################################### ## PATCH BUNDLE ## if you want to build yourself on AIX 5.3 or AIX 5.3 you may omit ## the patch of mozilla/toolkit/xre/nsNativeAppSupportUnix.cpp ## if you compile on AIX 5.2 ## you must additionally fix ./mozilla/js/src/jsgc.c ## with a line #define HAS_POSIX_MEMALIGN 0 ## or you'll get unresolved external symbol .posix_memalign ## You'll need a working python 2.5 in your PATH for building ## First patch is for the toplevel source directory ## hg tag was SEAMONKEY_2_0_5_RELEASE ## plus the patches for bug 499266 and bug 501881 ##################################################################### diff -U 8 -pr a/.mozconfig a/.mozconfig --- a/.mozconfig 2010-01-04 22:01:30.000000000 +0100 +++ a/.mozconfig 2010-01-05 16:09:02.000000000 +0100 @@ -0,0 +1,22 @@ +export OBJECT_MODE=32 +#export OBJECT_MODE=64 +export CC=xlc_r +export CXX=xlC_r +export AUTOCONF=/opt/freeware/bin/autoconf-2.13 +#export MOZILLA_OFFICIAL=1 +#export BUILD_OFFICIAL=1 +mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/SM2_OBJ32 +#mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/SM2_OBJ64 +#mk_add_options MOZILLA_OFFICIAL=1 +#mk_add_options BUILD_OFFICIAL=1 +ac_add_options --enable-application=suite + +ac_add_options --disable-dbus +ac_add_options --disable-accessibility +ac_add_options --with-system-zlib +ac_add_options --enable-system-cairo + +ac_add_options --enable-optimize="-O2 -qarch=com -qmaxmem=-1 -qalias=noansi" +#ac_add_options --enable-optimize="-O2 -qarch=ppc64 -qmaxmem=-1 -qalias=noansi" +ac_add_options --disable-debug +ac_add_options --disable-tests ##################################################################### ## The appended patch has to be applied to the ./mozilla subdirectory ## of the source tree. ## it is created with the command ## hg diff -U 8 -p ## against the http://hg.mozilla.org/releases/mozilla-1.9.1/ ## repository ##################################################################### diff --git a/gfx/src/thebes/nsThebesDeviceContext.cpp b/gfx/src/thebes/nsThebesDeviceContext.cpp --- a/gfx/src/thebes/nsThebesDeviceContext.cpp +++ b/gfx/src/thebes/nsThebesDeviceContext.cpp @@ -192,17 +192,17 @@ nsThebesDeviceContext::SetDPI() if (NS_FAILED(rv)) { prefDPI = -1; } } #if defined(MOZ_ENABLE_GTK2) GdkScreen *screen = gdk_screen_get_default(); gtk_settings_get_for_screen(screen); // Make sure init is run so we have a resolution - PRInt32 OSVal = PRInt32(round(gdk_screen_get_resolution(screen))); + PRInt32 OSVal = PRInt32(rint(gdk_screen_get_resolution(screen))); if (prefDPI == 0) // Force the use of the OS dpi dpi = OSVal; else // Otherwise, the minimum dpi is 96dpi dpi = PR_MAX(OSVal, 96); #elif defined(XP_WIN) // XXX we should really look at the widget if !dc but it is currently always null diff --git a/gfx/thebes/src/gfxFont.cpp b/gfx/thebes/src/gfxFont.cpp --- a/gfx/thebes/src/gfxFont.cpp +++ b/gfx/thebes/src/gfxFont.cpp @@ -1758,17 +1758,17 @@ gfxTextRun::AdjustAdvancesForSyntheticBo glyphData->SetComplex(PR_TRUE, PR_TRUE, 1); DetailedGlyph detail = {glyphIndex, advance, 0, 0}; SetGlyphs(i, *glyphData, &detail); } } else { // complex glyphs ==> add offset at cluster/ligature boundaries PRUint32 detailedLength = glyphData->GetGlyphCount(); if (detailedLength && mDetailedGlyphs) { - gfxTextRun::DetailedGlyph *details = mDetailedGlyphs[i].get(); + gfxTextRun::DetailedGlyph *details = (mDetailedGlyphs.get())[i].get(); if (!details) continue; if (isRTL) details[0].mAdvance += synAppUnitOffset; else details[detailedLength - 1].mAdvance += synAppUnitOffset; } } } diff --git a/media/libfishsound/src/libfishsound/debug.h b/media/libfishsound/src/libfishsound/debug.h --- a/media/libfishsound/src/libfishsound/debug.h +++ b/media/libfishsound/src/libfishsound/debug.h @@ -24,16 +24,20 @@ /* MSVC can't handle C99 */ #if (defined (_MSCVER) || defined (_MSC_VER)) #define debug_printf // #else #ifdef DEBUG #ifndef DEBUG_LEVEL #define DEBUG_LEVEL 1 +#ifdef AIX +#undef DEBUG_LEVEL 1 +#define DEBUG_LEVEL 0 +#endif #endif #endif #if (DEBUG_LEVEL > 0) #define DEBUG_MAXLINE 4096 #include @@ -78,15 +82,17 @@ debug_print_err (const char * func, int * debug_printf (level, fmt) * * Print a formatted debugging message of level 'level' to stderr */ #define debug_printf(x,y...) {if (x <= DEBUG_LEVEL) debug_print_err (__func__, __LINE__, y);} #undef MAXLINE +#elif defined AIX +#define debug_printf /* */ #else #define debug_printf(x,y...) #endif #endif /* non-C99 */ #endif /* __DEBUG_H__ */ diff --git a/media/liboggplay/src/liboggplay/oggplay_data.c b/media/liboggplay/src/liboggplay/oggplay_data.c --- a/media/liboggplay/src/liboggplay/oggplay_data.c +++ b/media/liboggplay/src/liboggplay/oggplay_data.c @@ -404,17 +404,17 @@ get_uv_offset(OggPlayTheoraDecode *decod if (decode->y_height != 0 && decode->uv_height != 0 && decode->y_height/decode->uv_height != 0) { yo = (buffer->uv_stride)*(decode->video_info.offset_y/(decode->y_height/decode->uv_height)); } return xo + yo; } -int +OggPlayErrorCode oggplay_data_handle_theora_frame (OggPlayTheoraDecode *decode, const yuv_buffer *buffer) { size_t size = sizeof (OggPlayVideoRecord); int i, ret; long y_size, uv_size, y_offset, uv_offset; unsigned char * p; unsigned char * q; diff --git a/media/liboggz/include/oggz/oggz_off_t_generated.h b/media/liboggz/include/oggz/oggz_off_t_generated.h --- a/media/liboggz/include/oggz/oggz_off_t_generated.h +++ b/media/liboggz/include/oggz/oggz_off_t_generated.h @@ -54,17 +54,17 @@
    echo "gcc -E oggz.h | grep oggz_off_t
  
* */ #include -#if defined(__APPLE__) || defined(SOLARIS) || defined(OS2) +#if defined(__APPLE__) || defined(SOLARIS) || defined(OS2) || defined (_AIX) typedef off_t oggz_off_t; #else typedef loff_t oggz_off_t; #endif #define PRI_OGGZ_OFF_T "PRId64" #endif /* __OGGZ_OFF_T_GENERATED__ */ diff --git a/media/liboggz/src/liboggz/dirac.c b/media/liboggz/src/liboggz/dirac.c --- a/media/liboggz/src/liboggz/dirac.c +++ b/media/liboggz/src/liboggz/dirac.c @@ -1,21 +1,22 @@ /* dirac.c */ - -#include "config.h" - -#ifdef HAVE_STDINT_H + +#include "config.h" + +#if defined AIX && HAVE_SYS_INTTYPES_H +#include +#elif defined HAVE_STDINT_H #include -#endif +#endif #include "dirac.h" - typedef struct dirac_bs_s { uint8_t *p_start; uint8_t *p; uint8_t *p_end; int i_left; /* i_count number of available bits */ diff --git a/media/libvorbis/lib/Makefile.in b/media/libvorbis/lib/Makefile.in --- a/media/libvorbis/lib/Makefile.in +++ b/media/libvorbis/lib/Makefile.in @@ -64,8 +64,12 @@ CSRCS = \ vorbis_registry.c \ vorbis_codebook.c \ vorbis_sharedbook.c \ vorbis_lookup.c \ vorbis_bitrate.c \ $(NULL) include $(topsrcdir)/config/rules.mk + +ifeq ($(OS_ARCH),AIX) +CFLAGS += -qalloca +endif diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in --- a/toolkit/library/Makefile.in +++ b/toolkit/library/Makefile.in @@ -250,16 +250,22 @@ endif ifeq ($(OS_ARCH),BeOS) EXTRA_DSO_LDOPTS += -lbe -ltracker endif ifeq ($(OS_ARCH),SunOS) EXTRA_DSO_LDOPTS += -lelf -ldemangle -lCstd endif +ifeq ($(OS_ARCH),AIX) +ifdef HAVE_64BIT_OS +EXTRA_DSO_LDOPTS += -bbigtoc +endif +endif + ifeq ($(OS_ARCH),WINNT) EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,shell32 ole32 uuid version winspool comdlg32 imm32 winmm wsock32 msimg32) ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC)) EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,imagehlp) endif endif # WINNT ifeq ($(OS_ARCH),WINCE) EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME, aygshell uuid ole32 oleaut32 Ws2)