--- config.make.in | 1 + configure | 16 +++++++++++++++- configure.in | 1 + posix/Makefile | 2 +- sunrpc/Makefile | 2 +- timezone/Makefile | 2 +- 6 files changed, 20 insertions(+), 4 deletions(-) Index: glibc-2.15/config.make.in =================================================================== --- glibc-2.15.orig/config.make.in +++ glibc-2.15/config.make.in @@ -100,6 +100,7 @@ add-ons = @add_ons@ add-on-subdirs = @add_on_subdirs@ sysdeps-add-ons = @sysdeps_add_ons@ cross-compiling = @cross_compiling@ +compiled-binaries-can-run-on-buildhost = @compiled_binaries_can_run_on_buildhost@ force-install = @force_install@ # Build tools. Index: glibc-2.15/configure.in =================================================================== --- glibc-2.15.orig/configure.in +++ glibc-2.15/configure.in @@ -15,6 +15,7 @@ if test $host != $build; then AC_CHECK_PROGS(BUILD_CC, gcc cc) fi AC_SUBST(cross_compiling) +AC_SUBST(compiled_binaries_can_run_on_buildhost) AC_PROG_CPP # We need the C++ compiler only for testing. AC_PROG_CXX Index: glibc-2.15/configure =================================================================== --- glibc-2.15.orig/configure +++ glibc-2.15/configure @@ -553,6 +553,7 @@ ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no +compiled_binaries_can_run_on_buildhost=yes subdirs= MFLAGS= MAKEFLAGS= @@ -706,6 +707,7 @@ CXXFLAGS CXX CPP cross_compiling +compiled_binaries_can_run_on_buildhost BUILD_CC OBJEXT ac_ct_CC @@ -1250,6 +1252,13 @@ do as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done +# Check whether --enable-runbinaries was given. +if test "${enable_runbinaries+set}" = set; then + enableval=$enable_runbinaries; compiled_binaries_can_run_on_buildhost=$enableval +else + compiled_binaries_can_run_on_buildhost=yes +fi + # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. @@ -1265,6 +1274,7 @@ if test "x$host_alias" != x; then If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes + compiled_binaries_can_run_on_buildhost=no fi fi @@ -1450,6 +1460,9 @@ Optional Features: --enable-multi-arch enable single DSO with optimizations for multiple architectures --enable-nss-crypt enable libcrypt to use nss + --enable-runbinaries the compiled binaries should run on the buildhost because + it happens to have a compatible cpu + Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] Index: glibc-2.15/posix/Makefile =================================================================== --- glibc-2.15.orig/posix/Makefile +++ glibc-2.15/posix/Makefile @@ -320,7 +320,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi done < $(objpfx)getconf.speclist $(objpfx)getconf.speclist: $(objpfx)getconf -ifeq (no,$(cross-compiling)) +ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) LC_ALL=C GETCONF_DIR=/dev/null \ $(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new LC_ALL=C GETCONF_DIR=/dev/null \ Index: glibc-2.15/sunrpc/Makefile =================================================================== --- glibc-2.15.orig/sunrpc/Makefile +++ glibc-2.15/sunrpc/Makefile @@ -108,7 +108,7 @@ otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libresolv.a endif -ifeq (no,$(cross-compiling)) +ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) # We can only build this library if we can run the rpcgen we build. headers += $(rpcsvc:%.x=rpcsvc/%.h) extra-libs := librpcsvc Index: glibc-2.15/timezone/Makefile =================================================================== --- glibc-2.15.orig/timezone/Makefile +++ glibc-2.15/timezone/Makefile @@ -69,7 +69,7 @@ installed-posixrules-file := $(firstword $(addprefix $(inst_zonedir)/, \ $(posixrules-file))) -ifeq ($(cross-compiling),no) +ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) # Don't try to install the zoneinfo files since we can't run zic. install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \ $(zonenames:%=posix/%) \