summaryrefslogtreecommitdiff
path: root/icu/icu4c-aix.patch
blob: 48659ca0406a3584b273522fb62d81e69022cb37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
--- 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],