155 lines
5.4 KiB
Diff
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,85 +1,49 @@
|
|
## -*-makefile-*-
|
|
-## Copyright (c) 2003-2007 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.
|
|
|
|
## Commands to generate dependency files
|
|
-GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
|
|
-GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS)
|
|
+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)
|
|
-
|
|
-## Commands to make a shared library
|
|
-SHLIB.c= $(AIX_PREDELETE) $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-bexpall
|
|
-SHLIB.cc= $(AIX_PREDELETE) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -Wl,-bexpall
|
|
+## 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=
|
|
+LD_RPATH=
|
|
+LD_RPATH_PRE =
|
|
|
|
-## enable the shared lib loader
|
|
-LDFLAGS += -Wl,-bbigtoc
|
|
+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
|
|
+## (incl. the C++ runtime libs potentially found in the URE lib dir):
|
|
+#ENABLE_RPATH=YES
|
|
+#RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'
|
|
+
|
|
+#SH# ENABLE_RPATH=YES
|
|
+#SH# RPATHLDFLAGS="${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'"
|
|
|
|
## 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)))
|
|
-
|
|
-# 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
|
|
+## Compiler switch to embed a library name
|
|
+# The initial tab in the next line is to prevent icu-config from reading it.
|
|
+ #LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
|
|
+#SH# # We can't depend on MIDDLE_SO_TARGET being set.
|
|
+#SH# LD_SONAME=
|
|
|
|
## 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
|
|
- $(AR) $(ARFLAGS) $@ $<
|
|
-$(LIBDIR)/%.a : %.so
|
|
- $(AR) $(ARFLAGS) $@ $<
|
|
-
|
|
-## 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
|
|
@@ -107,16 +71,19 @@
|
|
[ -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) $@
|
|
+
|
|
+## Bind internal references
|
|
|
|
-## BIR - bind with internal references [so app data and icu data doesn't collide]
|
|
# LDflags that pkgdata will use
|
|
-BIR_LDFLAGS= -Wl,-bE:$(NAME).map,-bnoexpall
|
|
+BIR_LDFLAGS= -Wl,-Bsymbolic
|
|
|
|
# Dependencies [i.e. map files] for the final library
|
|
-BIR_DEPS= $(NAME).map
|
|
+BIR_DEPS=
|
|
+
|
|
+## End Linux-specific setup
|
|
|
|
--- misc/icu/source/tools/pkgdata/dllmode.c 2010-07-27 09:29:19.000000000 -0500
|
|
+++ misc/build/icu/source/tools/pkgdata/dllmode.c 2010-07-27 09:29:48.000000000 -0500
|
|
@@ -222,7 +222,7 @@
|
|
"\t$(SHLIB.c) -o $@ $(OBJECTS) $(DLL_LDFLAGS)\n\n");
|
|
#endif
|
|
|
|
-#ifdef U_AIX
|
|
+#if 0
|
|
T_FileStream_writeLine(makefile, "$(TARGETDIR)/$(FINAL_SO_TARGET): $(OBJECTS) $(LISTFILES) $(DLL_DEPS)\n"
|
|
"\t$(SHLIB.c) -o $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ)) $(OBJECTS) $(DLL_LDFLAGS)\n"
|
|
"\t$(AR) $(ARFLAGS) $@ $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ))\n"
|