From 08b17e82f5dda943ac5830028fe3294d3edf3db4 Mon Sep 17 00:00:00 2001 From: zosrothko Date: Tue, 1 Dec 2015 08:02:33 +0100 Subject: [PATCH 1/4] Linux32: cross compilation for Linux 32 bits on a Linux 64bits --- build/config/Linux32 | 91 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 build/config/Linux32 diff --git a/build/config/Linux32 b/build/config/Linux32 new file mode 100644 index 000000000..2801476d8 --- /dev/null +++ b/build/config/Linux32 @@ -0,0 +1,91 @@ +# +# $Id: //poco/1.4/build/config/Linux#2 $ +# +# Linux +# +# Make settings for Linux 2.6/gcc 3.3 +# +# + +# +# General Settings +# +LINKMODE ?= SHARED +POCO_TARGET_OSNAME = Linux +POCO_TARGET_OSARCH = i686 + +# +# Define Tools +# +CC = ${CROSS_COMPILE}gcc +CXX = ${CROSS_COMPILE}g++ +LINK = $(CXX) +LIB = ${CROSS_COMPILE}ar -cr +RANLIB = ${CROSS_COMPILE}ranlib +SHLIB = $(CXX) -shared -Wl,-soname,$(notdir $@) -o $@ +SHLIBLN = $(POCO_BASE)/build/script/shlibln +STRIP = ${CROSS_COMPILE}strip +DEP = $(POCO_BASE)/build/script/makedepend.gcc +SHELL = sh +RM = rm -rf +CP = cp +MKDIR = mkdir -p + +# +# Extension for Shared Libraries +# +SHAREDLIBEXT = .so.$(target_version) +SHAREDLIBLINKEXT = .so + +# +# Compiler and Linker Flags +# +CFLAGS = +CFLAGS32 = +CFLAGS64 = -m32 +CXXFLAGS = -Wall -Wno-sign-compare +CXXFLAGS32 = +CXXFLAGS64 = -m32 +SHLIBFLAGS = +SHLIBFLAGS32 = +SHLIBFLAGS64 = -m32 +LIBFLAGS = +LIBFLAGS32 = +LIBFLAGS64 = +LINKFLAGS = +LINKFLAGS32 = +LINKFLAGS64 = -m32 +STATICOPT_CC = +STATICOPT_CXX = +STATICOPT_LINK = -static +SHAREDOPT_CC = -fPIC +SHAREDOPT_CXX = -fPIC +SHAREDOPT_LINK = -Wl,-rpath,$(LIBPATH) +DEBUGOPT_CC = -g -D_DEBUG +DEBUGOPT_CXX = -g -D_DEBUG +DEBUGOPT_LINK = -g +RELEASEOPT_CC = -O2 -DNDEBUG +RELEASEOPT_CXX = -O2 -DNDEBUG +RELEASEOPT_LINK = -O2 + +# +# System Specific Flags +# +SYSFLAGS = -D_XOPEN_SOURCE=500 -D_REENTRANT -D_THREAD_SAFE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DPOCO_HAVE_FD_EPOLL + +# +# System Specific Libraries +# +SYSLIBS = -lpthread -ldl -lrt + +# +# Auto-detect architecture if not specified +# +ifndef OSARCH_64BITS + LBITS := $(shell getconf LONG_BIT) + ifeq ($(LBITS),64) + OSARCH_64BITS = 1 + else + OSARCH_64BITS = 0 + endif +endif From 5762580af0819446050b2be43626f6b168a01f77 Mon Sep 17 00:00:00 2001 From: zosrothko Date: Tue, 1 Dec 2015 08:06:00 +0100 Subject: [PATCH 2/4] Generic Linux configuration Generic Linux configuration works either for i686, x86_64 or cross compilation for ARM. For producing a Linux 32 bits on a Linux x84_64 OS, one should crossbuild with the Linux32 configuration. --- build/config/Linux | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/build/config/Linux b/build/config/Linux index e72b11001..7ba799dd3 100644 --- a/build/config/Linux +++ b/build/config/Linux @@ -39,20 +39,20 @@ SHAREDLIBLINKEXT = .so # Compiler and Linker Flags # CFLAGS = -CFLAGS32 = -m32 -CFLAGS64 = -m64 +CFLAGS32 = +CFLAGS64 = CXXFLAGS = -Wall -Wno-sign-compare -CXXFLAGS32 = -m32 -CXXFLAGS64 = -m64 +CXXFLAGS32 = +CXXFLAGS64 = SHLIBFLAGS = -SHLIBFLAGS32 = -m32 -SHLIBFLAGS64 = -m64 +SHLIBFLAGS32 = +SHLIBFLAGS64 = LIBFLAGS = LIBFLAGS32 = LIBFLAGS64 = LINKFLAGS = -LINKFLAGS32 = -m32 -LINKFLAGS64 = -m64 +LINKFLAGS32 = +LINKFLAGS64 = STATICOPT_CC = STATICOPT_CXX = STATICOPT_LINK = -static From b988179dcc556ee6e2f3fb584c79660031a5d36f Mon Sep 17 00:00:00 2001 From: zosrothko Date: Tue, 1 Dec 2015 08:14:28 +0100 Subject: [PATCH 3/4] Rename Linux32 to Linux32-gcc --- build/config/{Linux32 => Linux32-gcc} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename build/config/{Linux32 => Linux32-gcc} (100%) diff --git a/build/config/Linux32 b/build/config/Linux32-gcc similarity index 100% rename from build/config/Linux32 rename to build/config/Linux32-gcc From ca166fc3201fd732473ffa553198d54e42ecbe04 Mon Sep 17 00:00:00 2001 From: Francis ANDRE Date: Thu, 3 Dec 2015 07:00:19 +0100 Subject: [PATCH 4/4] Refactoring --- build/config/Linux32-gcc | 85 +++++----------------------------------- 1 file changed, 9 insertions(+), 76 deletions(-) diff --git a/build/config/Linux32-gcc b/build/config/Linux32-gcc index 2801476d8..1243c2284 100644 --- a/build/config/Linux32-gcc +++ b/build/config/Linux32-gcc @@ -3,89 +3,22 @@ # # Linux # -# Make settings for Linux 2.6/gcc 3.3 +# Make settings for crossbuilding Poco Linux x86 on a Linux x86_64 OS. # # +include $(POCO_BASE)/build/config/Linux + # -# General Settings +# Crossbuild Settings # -LINKMODE ?= SHARED POCO_TARGET_OSNAME = Linux -POCO_TARGET_OSARCH = i686 - -# -# Define Tools -# -CC = ${CROSS_COMPILE}gcc -CXX = ${CROSS_COMPILE}g++ -LINK = $(CXX) -LIB = ${CROSS_COMPILE}ar -cr -RANLIB = ${CROSS_COMPILE}ranlib -SHLIB = $(CXX) -shared -Wl,-soname,$(notdir $@) -o $@ -SHLIBLN = $(POCO_BASE)/build/script/shlibln -STRIP = ${CROSS_COMPILE}strip -DEP = $(POCO_BASE)/build/script/makedepend.gcc -SHELL = sh -RM = rm -rf -CP = cp -MKDIR = mkdir -p - -# -# Extension for Shared Libraries -# -SHAREDLIBEXT = .so.$(target_version) -SHAREDLIBLINKEXT = .so +POCO_TARGET_OSARCH = x86 # # Compiler and Linker Flags # -CFLAGS = -CFLAGS32 = -CFLAGS64 = -m32 -CXXFLAGS = -Wall -Wno-sign-compare -CXXFLAGS32 = -CXXFLAGS64 = -m32 -SHLIBFLAGS = -SHLIBFLAGS32 = -SHLIBFLAGS64 = -m32 -LIBFLAGS = -LIBFLAGS32 = -LIBFLAGS64 = -LINKFLAGS = -LINKFLAGS32 = -LINKFLAGS64 = -m32 -STATICOPT_CC = -STATICOPT_CXX = -STATICOPT_LINK = -static -SHAREDOPT_CC = -fPIC -SHAREDOPT_CXX = -fPIC -SHAREDOPT_LINK = -Wl,-rpath,$(LIBPATH) -DEBUGOPT_CC = -g -D_DEBUG -DEBUGOPT_CXX = -g -D_DEBUG -DEBUGOPT_LINK = -g -RELEASEOPT_CC = -O2 -DNDEBUG -RELEASEOPT_CXX = -O2 -DNDEBUG -RELEASEOPT_LINK = -O2 - -# -# System Specific Flags -# -SYSFLAGS = -D_XOPEN_SOURCE=500 -D_REENTRANT -D_THREAD_SAFE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DPOCO_HAVE_FD_EPOLL - -# -# System Specific Libraries -# -SYSLIBS = -lpthread -ldl -lrt - -# -# Auto-detect architecture if not specified -# -ifndef OSARCH_64BITS - LBITS := $(shell getconf LONG_BIT) - ifeq ($(LBITS),64) - OSARCH_64BITS = 1 - else - OSARCH_64BITS = 0 - endif -endif +CFLAGS64 += -m32 +CXXFLAGS64 += -m32 +SHLIBFLAGS64 += -m32 +LINKFLAGS64 += -m32