diff options
author | Michael Meeks <michael.meeks@suse.com> | 2012-07-16 17:40:25 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2012-07-20 16:40:21 +0100 |
commit | d3c4d9a0f828d42ee6cd0768607ca08b21669d70 (patch) | |
tree | 917b3ead0f49b5a8b5dec5793b54c94aba88e371 /solenv | |
parent | e88f6ca683a333d927b1e5a63fcae7a88a01ab6b (diff) |
android: x86 porting work.
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/platform/ANDROID_INTEL_GCC.mk | 104 | ||||
-rw-r--r-- | solenv/inc/unx.mk | 4 | ||||
-rw-r--r-- | solenv/inc/unxandr.mk | 4 |
3 files changed, 112 insertions, 0 deletions
diff --git a/solenv/gbuild/platform/ANDROID_INTEL_GCC.mk b/solenv/gbuild/platform/ANDROID_INTEL_GCC.mk new file mode 100644 index 000000000000..28afab6b1551 --- /dev/null +++ b/solenv/gbuild/platform/ANDROID_INTEL_GCC.mk @@ -0,0 +1,104 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License or as specified alternatively below. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# Major Contributor(s): +# Copyright (C) 2010 Red Hat, Inc., Caolán McNamara <caolanm@redhat.com> +# (initial developer) +# +# All Rights Reserved. +# +# For minor contributions see the git repository. +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -DX86 +gb_COMPILERDEFAULTOPTFLAGS := -Os +gb_CXXFLAGS += -fno-omit-frame-pointer +gb_CFLAGS += -fno-omit-frame-pointer + +include $(GBUILDDIR)/platform/unxgcc.mk + +# Link almost everything with -lgnustl_shared +gb_STDLIBS := \ + gnustl_shared + +gb_Library_PLAINLIBS_NONE := \ + android \ + gnustl_shared \ + +# No unit testing can be run +gb_CppunitTest_CPPTESTPRECOMMAND := : + +# Re-define this from unxgcc.mk with some small but important +# changes. Just temporarily done this way, shm_get promised to +# eventually enable this to be done this in some more elegant and less +# redundant fashion. + +gb_LinkTarget_LDFLAGS += \ + -Wl,-z,defs \ + -Wl,--as-needed \ + -Wl,--no-add-needed + +define gb_LinkTarget__command_dynamiclink +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + $(gb_CXX) \ + -shared \ + $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ + $(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \ + $(subst \d,$$,$(RPATH)) \ + $(T_LDFLAGS) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \ + $(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \ + -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \ + $(LIBS) \ + $(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))))) \ + -o $(1)) +endef + +# Prefix UNO library filenames with "lib" +gb_Library_FILENAMES := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + + +# No DT_RPATH or DT_RUNPATH support in the Bionic dynamic linker so +# don't bother generating such. + +define gb_Library_get_rpath +endef + +define gb_Executable_get_rpath +endef + +gb_LinkTarget_LDFLAGS := $(subst -Wl$(COMMA)-rpath-link$(COMMA)$(SYSBASE)/lib:$(SYSBASE)/usr/lib,,$(gb_LinkTarget_LDFLAGS)) + +gb_Library__set_soversion_script_platform = + +# vim: set noet sw=4: diff --git a/solenv/inc/unx.mk b/solenv/inc/unx.mk index fa304d9690af..619c2e828736 100644 --- a/solenv/inc/unx.mk +++ b/solenv/inc/unx.mk @@ -95,6 +95,10 @@ .INCLUDE : unxandr.mk .ENDIF +.IF "$(COM)$(OS)$(CPU)" == "GCCANDROIDI" +.INCLUDE : unxandr.mk +.ENDIF + .IF "$(COM)$(OS)$(CPU)" == "GCCLINUXA" .INCLUDE : unxlnga.mk .ENDIF diff --git a/solenv/inc/unxandr.mk b/solenv/inc/unxandr.mk index f9408b94a964..5065aa1491f7 100644 --- a/solenv/inc/unxandr.mk +++ b/solenv/inc/unxandr.mk @@ -29,7 +29,11 @@ CDEFAULTOPT=-Os .INCLUDE : unxgcc.mk +.IF "$(CPU)" == "I" +CDEFS+=-DX86 +.ELSE CDEFS+=-DARM32 +.ENDIF CFLAGS+=-fno-omit-frame-pointer # Override some macros set by unxgcc.mk |