office-gobmx/icu/icu4c-aix.patch
Caolán McNamara bc6295e0b3 make icudata lib target consistent with the others
Change-Id: Ide7c37c9738ca640e7d80ede904ad8d7702e5a34
2013-04-06 21:04:34 +01:00

155 lines
5.4 KiB
Diff

--- misc/icu/source/config/mh-aix-gcc 2009-01-15 01:46:10.000000000 -0600
+++ misc/build/icu/source/config/mh-aix-gcc 2010-06-24 20:58:16.000000000 -0500
@@ -1,10 +1,7 @@
## -*-makefile-*-
-## Copyright (c) 2003-2009 IBM, Ken Foskey, and others. All rights reserved.
-##
-## Aix-specific setup (for gcc)
-##
-## Please note: AIX does NOT have library versioning per se (there is no 'SONAME' capability).
-## So, we are using 'windows' style library names, that is, libicuuc20.1.so instead of libicuuc.so.20.1
+## Linux-specific setup
+## Copyright (c) 1999-2006, International Business Machines Corporation and
+## others. All Rights Reserved.
# Certain files don't compile in -ansi mode (e.g. umutex.c, toolutil.c, and cdatatst.c)
CFLAGS += -D_ALL_SOURCE
@@ -13,84 +10,30 @@
GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS)
-## Commands to link
-## We need to use the C++ linker, even when linking C programs, since
-## our libraries contain C++ code (C++ static init not called)
-LINK.c= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS)
-LINK.cc= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS)
-
-## Shared library options
-LD_SOOPTIONS= -Wl,-bsymbolic
-
-## Commands to make a shared library
-SHLIB.c= $(AIX_PREDELETE) $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-bexpall $(LD_SOOPTIONS)
-SHLIB.cc= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -Wl,-bexpall $(LD_SOOPTIONS)
+## Flags for position independent code
+SHAREDLIBCFLAGS = -fPIC
+SHAREDLIBCXXFLAGS = -fPIC
+SHAREDLIBCPPFLAGS = -DPIC
+
+## Additional flags when building libraries and with threads
+THREADSCPPFLAGS = -D_REENTRANT -D_THREAD_SAFE
+LIBCPPFLAGS =
## Compiler switch to embed a runtime search path
-LD_RPATH= -I
-LD_RPATH_PRE=
-
-## enable the shared lib loader
-LDFLAGS += -Wl,-bbigtoc
+LD_RPATH=
+LD_RPATH_PRE=
## These are the library specific LDFLAGS
LDFLAGSICUDT=-nodefaultlibs -nostdlib
-## We need to delete things prior to linking, or else we'll get
-## SEVERE ERROR: output file in use .. on AIX.
-## But, shell script version should NOT delete target as we don't
-## have $@ in that context. (SH = only shell script, icu-config)
-AIX_PREDELETE=rm -f $@ ;
-#SH# AIX_PREDELETE=
-
## Environment variable to set a runtime search path
LDLIBRARYPATH_ENVVAR = LIBPATH
-## Override Versioned target for a shared library.
-FINAL_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO)
-MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
-SHARED_OBJECT = $(notdir $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ)))
-SHARED_OBJECT_NO_VERSION = $(basename $(SO_TARGET)).$(SOBJ)
-
-# The following is for Makefile.inc's use.
-ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR)
-
-# this one is for icudefs.mk's use
-ifeq ($(ENABLE_SHARED),YES)
-SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR)
-endif
-
-## Compiler switch to embed a library name. Not present on AIX.
-LD_SONAME =
-
-## The type of assembly needed when pkgdata is used for generating shared libraries.
-GENCCODE_ASSEMBLY=-a xlc
-
## Shared object suffix
-SOBJ= so
-# without the -brtl option, the library names use .a. AIX is funny that way.
-SO= a
-A= a
+SO = so
## Non-shared intermediate object suffix
-STATIC_O = o
-
-## Special AIX rules
-
-## Build archive from shared object
-%.a : %.so
- ln -f $< $(SHARED_OBJECT_NO_VERSION)
- $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION)
- rm -f $(SHARED_OBJECT_NO_VERSION)
-$(LIBDIR)/%.a : %.so
- ln -f $< $(SHARED_OBJECT_NO_VERSION)
- $(AR) $(ARFLAGS) $@ $(SHARED_OBJECT_NO_VERSION)
- rm -f $(SHARED_OBJECT_NO_VERSION)
-
-## Build import list from export list
-%.e : %.exp
- @echo "Building an import list for $<"
- @$(SHELL) -ec "echo '#! $*.a($*.so)' | cat - $< > $@"
+STATIC_O = ao
## Compilation rules
%.$(STATIC_O): $(srcdir)/%.c
@@ -118,10 +61,10 @@
[ -s $@ ] || rm -f $@'
## Versioned libraries rules
-%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)
- $(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@
-%.$(SO): %$(SO_TARGET_VERSION).$(SO)
- $(RM) $@ && ln -s ${*F}$(SO_TARGET_VERSION).$(SO) $@
+%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
+ $(RM) $@ && ln -s ${<F} $@
+%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
+ $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
## BIR - bind with internal references [so app data and icu data doesn't collide]
--- misc/icu/source/tools/pkgdata/pkgdata.cpp 2013-03-15 22:12:06.000000000 +0000
+++ misc/build/icu/source/tools/pkgdata/pkgdata.cpp 2013-04-06 20:56:00.935656635 +0100
@@ -888,7 +888,7 @@
uprv_strcat(pkgDataFlags[SO_EXT], ".");
uprv_strcat(pkgDataFlags[SO_EXT], pkgDataFlags[A_EXT]);
-#elif U_PLATFORM == U_PF_OS400 || defined(_AIX)
+#elif U_PLATFORM == U_PF_OS400
sprintf(libFileNames[LIB_FILE_VERSION_TMP], "%s.%s",
libFileNames[LIB_FILE],
pkgDataFlags[SOBJ_EXT]);
@@ -1302,15 +1298,6 @@
pkgDataFlags[LDICUDTFLAGS],
targetDir,
libFileNames[LIB_FILE_CYGWIN_VERSION],
-#elif U_PLATFORM == U_PF_AIX
- sprintf(cmd, "%s %s%s;%s %s -o %s%s %s %s%s %s %s",
- RM_CMD,
- targetDir,
- libFileNames[LIB_FILE_VERSION_TMP],
- pkgDataFlags[GENLIB],
- pkgDataFlags[LDICUDTFLAGS],
- targetDir,
- libFileNames[LIB_FILE_VERSION_TMP],
#else
sprintf(cmd, "%s %s -o %s%s %s %s%s %s %s",
pkgDataFlags[GENLIB],