Support cross compilation by compiling "zic" with a native compiler. This
relies on the output of zic being platform independent, but that is currently the case.
This commit is contained in:
parent
cc9bcbc8a4
commit
85884cb1de
14
configure
vendored
14
configure
vendored
@ -314,7 +314,7 @@ ac_includes_default="\
|
|||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
#endif"
|
#endif"
|
||||||
|
|
||||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS configure_args build build_cpu build_vendor build_os host host_cpu host_vendor host_os PORTNAME docdir enable_nls WANTED_LANGUAGES default_port enable_shared enable_rpath enable_debug CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GCC TAS autodepend INCLUDES enable_thread_safety with_tcl with_perl with_python with_krb5 krb_srvtab with_pam with_bonjour with_openssl EGREP ELF_SYS LDFLAGS_SL AWK FLEX FLEXFLAGS LN_S LD with_gnu_ld ld_R_works RANLIB ac_ct_RANLIB LORDER TAR STRIP ac_ct_STRIP STRIP_STATIC_LIB STRIP_SHARED_LIB YACC YFLAGS PERL perl_archlibexp perl_privlibexp perl_useshrplib perl_embed_ldflags PYTHON python_version python_configdir python_includespec python_libdir python_libspec python_additional_libs HAVE_IPV6 LIBOBJS acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS HAVE_POSIX_SIGNALS MSGFMT MSGMERGE XGETTEXT localedir TCLSH TCL_CONFIG_SH TCL_INCLUDE_SPEC TCL_LIB_FILE TCL_LIBS TCL_LIB_SPEC TCL_SHARED_BUILD TCL_SHLIB_LD_LIBS NSGMLS JADE have_docbook DOCBOOKSTYLE COLLATEINDEX SGMLSPL vpath_build LTLIBOBJS'
|
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS configure_args build build_cpu build_vendor build_os host host_cpu host_vendor host_os PORTNAME docdir enable_nls WANTED_LANGUAGES default_port enable_shared enable_rpath enable_debug CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GCC CC_FOR_BUILD TAS autodepend INCLUDES enable_thread_safety with_tcl with_perl with_python with_krb5 krb_srvtab with_pam with_bonjour with_openssl EGREP ELF_SYS LDFLAGS_SL AWK FLEX FLEXFLAGS LN_S LD with_gnu_ld ld_R_works RANLIB ac_ct_RANLIB LORDER TAR STRIP ac_ct_STRIP STRIP_STATIC_LIB STRIP_SHARED_LIB YACC YFLAGS PERL perl_archlibexp perl_privlibexp perl_useshrplib perl_embed_ldflags PYTHON python_version python_configdir python_includespec python_libdir python_libspec python_additional_libs HAVE_IPV6 LIBOBJS acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS HAVE_POSIX_SIGNALS MSGFMT MSGMERGE XGETTEXT localedir TCLSH TCL_CONFIG_SH TCL_INCLUDE_SPEC TCL_LIB_FILE TCL_LIBS TCL_LIB_SPEC TCL_SHARED_BUILD TCL_SHLIB_LD_LIBS NSGMLS JADE have_docbook DOCBOOKSTYLE COLLATEINDEX SGMLSPL vpath_build LTLIBOBJS'
|
||||||
ac_subst_files=''
|
ac_subst_files=''
|
||||||
|
|
||||||
# Initialize some variables set by options.
|
# Initialize some variables set by options.
|
||||||
@ -3305,6 +3305,17 @@ _ACEOF
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Native compiler
|
||||||
|
#
|
||||||
|
|
||||||
|
if test -z "$CC_FOR_BUILD"; then
|
||||||
|
CC_FOR_BUILD=$CC
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Set up TAS assembly code if needed; the template file has now had its
|
# Set up TAS assembly code if needed; the template file has now had its
|
||||||
# chance to request this.
|
# chance to request this.
|
||||||
@ -22892,6 +22903,7 @@ s,@EXEEXT@,$EXEEXT,;t t
|
|||||||
s,@OBJEXT@,$OBJEXT,;t t
|
s,@OBJEXT@,$OBJEXT,;t t
|
||||||
s,@CPP@,$CPP,;t t
|
s,@CPP@,$CPP,;t t
|
||||||
s,@GCC@,$GCC,;t t
|
s,@GCC@,$GCC,;t t
|
||||||
|
s,@CC_FOR_BUILD@,$CC_FOR_BUILD,;t t
|
||||||
s,@TAS@,$TAS,;t t
|
s,@TAS@,$TAS,;t t
|
||||||
s,@autodepend@,$autodepend,;t t
|
s,@autodepend@,$autodepend,;t t
|
||||||
s,@INCLUDES@,$INCLUDES,;t t
|
s,@INCLUDES@,$INCLUDES,;t t
|
||||||
|
13
configure.in
13
configure.in
@ -1,5 +1,5 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
dnl $PostgreSQL: pgsql/configure.in,v 1.414 2005/07/01 18:17:30 petere Exp $
|
dnl $PostgreSQL: pgsql/configure.in,v 1.415 2005/07/03 18:54:26 petere Exp $
|
||||||
dnl
|
dnl
|
||||||
dnl Developers, please strive to achieve this order:
|
dnl Developers, please strive to achieve this order:
|
||||||
dnl
|
dnl
|
||||||
@ -303,6 +303,17 @@ AC_DEFINE_UNQUOTED(PG_VERSION_STR,
|
|||||||
[A string containing the version number, platform, and C compiler])
|
[A string containing the version number, platform, and C compiler])
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Native compiler
|
||||||
|
#
|
||||||
|
|
||||||
|
if test -z "$CC_FOR_BUILD"; then
|
||||||
|
CC_FOR_BUILD=$CC
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(CC_FOR_BUILD)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Set up TAS assembly code if needed; the template file has now had its
|
# Set up TAS assembly code if needed; the template file has now had its
|
||||||
# chance to request this.
|
# chance to request this.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.238 2005/06/27 02:04:23 neilc Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.239 2005/07/03 18:54:27 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="installation">
|
<chapter id="installation">
|
||||||
<title><![%standalone-include[<productname>PostgreSQL</>]]>
|
<title><![%standalone-include[<productname>PostgreSQL</>]]>
|
||||||
@ -993,6 +993,23 @@ su - postgres
|
|||||||
<userinput>./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'</>
|
<userinput>./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'</>
|
||||||
</screen>
|
</screen>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If you are cross-compiling<indexterm><primary>cross
|
||||||
|
compilation</primary></indexterm> (compiling on one architecture
|
||||||
|
with the intent to run on a different architecture), special care
|
||||||
|
needs to be taken. First of all, specify the host architecture
|
||||||
|
(the architecture PostgreSQL will run on) using the option
|
||||||
|
<option>--host</option>. The variables <envar>CC</>,
|
||||||
|
<envar>CFLAGS</>, etc. should refer to the build tools for the
|
||||||
|
host architecture. During the build process, the time-zone
|
||||||
|
database for PostgreSQL is created and a special tool to do that
|
||||||
|
is compiled and run during the build process. This tool needs to
|
||||||
|
be compiled using a native compiler. Specify this compiler using
|
||||||
|
the variable <envar>CC_FOR_BUILD</envar>. Cross compilation
|
||||||
|
requires expert knowledge and the support for this process in the
|
||||||
|
PostgreSQL tree should be considered somewhat experimental.
|
||||||
|
</para>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step>
|
<step>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# -*-makefile-*-
|
# -*-makefile-*-
|
||||||
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.214 2005/05/17 18:26:22 tgl Exp $
|
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.215 2005/07/03 18:54:28 petere Exp $
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# All PostgreSQL makefiles include this file and use the variables it sets,
|
# All PostgreSQL makefiles include this file and use the variables it sets,
|
||||||
@ -182,6 +182,7 @@ endif
|
|||||||
endif # not PGXS
|
endif # not PGXS
|
||||||
|
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
|
CC_FOR_BUILD = @CC_FOR_BUILD@
|
||||||
GCC = @GCC@
|
GCC = @GCC@
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# Makefile for the timezone library
|
# Makefile for the timezone library
|
||||||
|
|
||||||
# IDENTIFICATION
|
# IDENTIFICATION
|
||||||
# $PostgreSQL: pgsql/src/timezone/Makefile,v 1.17 2004/12/31 19:01:54 tgl Exp $
|
# $PostgreSQL: pgsql/src/timezone/Makefile,v 1.18 2005/07/03 18:54:28 petere Exp $
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ override CPPFLAGS := $(CPPFLAGS)
|
|||||||
OBJS= localtime.o strftime.o pgtz.o
|
OBJS= localtime.o strftime.o pgtz.o
|
||||||
|
|
||||||
# files needed to build zic utility program
|
# files needed to build zic utility program
|
||||||
ZICOBJS= zic.o ialloc.o scheck.o localtime.o
|
ZICOBJS= zic.o ialloc.o scheck.o localtime-zic.o
|
||||||
|
|
||||||
# timezone data files
|
# timezone data files
|
||||||
TZDATA := africa antarctica asia australasia europe northamerica southamerica \
|
TZDATA := africa antarctica asia australasia europe northamerica southamerica \
|
||||||
@ -30,8 +30,17 @@ all: SUBSYS.o submake-libpgport zic
|
|||||||
SUBSYS.o: $(OBJS)
|
SUBSYS.o: $(OBJS)
|
||||||
$(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)
|
$(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)
|
||||||
|
|
||||||
|
# In case of cross-compilation, zic needs to be built with a native
|
||||||
|
# compiler because it is run during the build, not on the final
|
||||||
|
# system.
|
||||||
|
|
||||||
|
localtime-zic.c: localtime.c
|
||||||
|
$(LN_S) $< $@
|
||||||
|
|
||||||
|
$(ZICOBJS): CC=$(CC_FOR_BUILD)
|
||||||
|
|
||||||
zic: $(ZICOBJS)
|
zic: $(ZICOBJS)
|
||||||
$(CC) $(CFLAGS) $(ZICOBJS) $(LDFLAGS) $(LIBS) -o $@$(X)
|
$(CC_FOR_BUILD) $(CFLAGS) $(ZICOBJS) -o $@$(X)
|
||||||
|
|
||||||
install: all installdirs
|
install: all installdirs
|
||||||
./zic -d $(DESTDIR)$(datadir)/timezone $(TZDATAFILES)
|
./zic -d $(DESTDIR)$(datadir)/timezone $(TZDATAFILES)
|
||||||
@ -40,4 +49,4 @@ installdirs:
|
|||||||
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
||||||
|
|
||||||
clean distclean maintainer-clean:
|
clean distclean maintainer-clean:
|
||||||
rm -f SUBSYS.o zic$(X) $(OBJS) $(ZICOBJS)
|
rm -f SUBSYS.o zic zic$(X) $(OBJS) $(ZICOBJS) localtime-zic.c
|
||||||
|
Loading…
x
Reference in New Issue
Block a user