An NMU has been uploaded for this package which addresses this bug. Please find the diffset attached. (This is actually the second of two NMUs; I talked with Frank Lichtenheld on IRC about the fact that this bug also affects powerpc, so an i386-specific fix is incomplete.)
-- Steve Langasek postmodern programmer
diff -u erlang-10.b.1a/debian/rules erlang-10.b.1a/debian/rules
--- erlang-10.b.1a/debian/rules
+++ erlang-10.b.1a/debian/rules
@@ -3,11 +3,12 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
-MACHINE=$(shell uname -m)
+
+DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
VERSION=$(shell cat erts/vsn.mk | grep "^VSN" | sed "s/VSN = //")
-ifeq ("$(MACHINE)", "i586")
- HIPE=--enable-hipe
+ifneq ($(DEB_HOST_GNU_TYPE), x86_64-linux)
+ HIPE=--disable-hipe
endif
build: config-stamp build-stamp
diff -u erlang-10.b.1a/debian/changelog erlang-10.b.1a/debian/changelog
--- erlang-10.b.1a/debian/changelog
+++ erlang-10.b.1a/debian/changelog
@@ -1,3 +1,20 @@
+erlang (1:10.b.1a-2.2) unstable; urgency=high
+
+ * Non-maintainer upload.
+ * High-urgency upload for sarge-targetted RC bugfix
+ * Build with --disable-hipe on everything but amd64 (not just on i386),
+ for compatibility with 2.4 kernels in sarge; thanks to Lars
+ Wirzenius for tracking this down. Closes: #276800.
+
+ -- Steve Langasek <[EMAIL PROTECTED]> Sat, 12 Mar 2005 01:27:58 -0800
+
+ erlang (1:10.b.1a-2.1) unstable; urgency=high
+
+ * NMU
+ * configure --disable-hipe on i386, (Closes: #276800)
+
+ -- Frank Lichtenheld <[EMAIL PROTECTED]> Sat, 12 Mar 2005 14:50:16 +0100
+
erlang (1:10.b.1a-2) unstable; urgency=low
* Rebuild with corrected pathnames to libraries (remove duplicates).
only in patch2:
unchanged:
--- erlang-10.b.1a.orig/erts/etc/common/Install
+++ erlang-10.b.1a/erts/etc/common/Install
@@ -0,0 +1,160 @@
+#!/bin/sh
+#
+# Patch $ERL_ROOT/emulator/obj/Makefile.dist & make
+#
+#
+start_option=query
+while [ $# -ne 0 ]; do
+ case $1 in
+ -minimal) start_option=minimal ;;
+ -sasl) start_option=sasl ;;
+ *) ERL_ROOT=$1 ;;
+ esac
+ shift
+done
+
+if [ -z "$ERL_ROOT" -o ! -d "$ERL_ROOT" ]
+then
+ echo "Install: need ERL_ROOT directory as argument"
+ exit 1
+fi
+
+if [ `echo $ERL_ROOT | awk '{ print substr($1,1,1) }'` != "/" ]
+then
+ echo "Install: need an absolute path to ERL_ROOT"
+ exit 1
+fi
+
+if [ ! -d $ERL_ROOT/erts-5.4.2.1/bin ]
+then
+ echo "Install: The directory $ERL_ROOT/erts-5.4.2.1/bin does not exist"
+ echo " Bad location or erts module not un-tared"
+ exit 1
+fi
+
+if [ -d $ERL_ROOT/erts-5.4.2.1/obj ]
+then
+ cd $ERL_ROOT/erts-5.4.2.1/obj
+ sed -e "s;%FINAL_ROOTDIR%;$ERL_ROOT;" Makefile.src > Makefile
+fi
+
+if [ ! -d $ERL_ROOT/bin ]
+then
+ mkdir $ERL_ROOT/bin
+fi
+
+#
+# Fetch target system.
+#
+SYS=`(uname -s) 2>/dev/null` || SYS=unknown
+REL=`(uname -r) 2>/dev/null` || REL=unknown
+case $SYS:$REL in
+ SunOS:5.*)
+ TARGET=sunos5 ;;
+ Linux:*)
+ TARGET=linux ;;
+ *)
+ TARGET="" ;;
+esac
+
+cd $ERL_ROOT/erts-5.4.2.1/bin
+
+sed -e "s;%FINAL_ROOTDIR%;$ERL_ROOT;" erl.src > erl
+chmod 755 erl
+
+#
+# Create start file for embedded system use,
+#
+(cd $ERL_ROOT/erts-5.4.2.1/bin;
+ sed -e "s;%FINAL_ROOTDIR%;$ERL_ROOT;" start.src > start;
+ chmod 755 start)
+
+cd $ERL_ROOT/bin
+
+cp -p $ERL_ROOT/erts-5.4.2.1/bin/erl .
+cp -p $ERL_ROOT/erts-5.4.2.1/bin/erlc .
+
+#
+# Set a soft link to epmd
+# This should not be done for an embedded system!
+#
+
+# Remove old links first.
+if [ -h epmd ]; then
+ /bin/rm -f epmd
+fi
+
+ln -s $ERL_ROOT/erts-5.4.2.1/bin/epmd epmd
+
+cp -p $ERL_ROOT/erts-5.4.2.1/bin/run_erl .
+cp -p $ERL_ROOT/erts-5.4.2.1/bin/to_erl .
+cp -p $ERL_ROOT/erts-5.4.2.1/bin/start .
+sed -e "s;%EMU%;beam;" $ERL_ROOT/erts-5.4.2.1/bin/start_erl.src > start_erl
+chmod 755 start_erl
+
+if [ -d $ERL_ROOT/lib/sasl* ]
+then
+ (cd $ERL_ROOT/releases
+ echo 5.4.2.1 R10B > start_erl.data)
+ echo ""
+ (cd $ERL_ROOT/releases/R10B
+ echo ""
+ echo "Building SASL boot script ..."
+# ERCL_EMULATOR="$ERL_ROOT/bin/erl +B -boot ./start" $ERL_ROOT/bin/erlc -s
start_sasl.rel
+ $ERL_ROOT/bin/erl -noinput +B -boot ./start -s systools make_script
start_sasl -s erlang halt
+ $ERL_ROOT/bin/erl -noinput +B -boot ./start -s release_handler
create_RELEASES $ERL_ROOT start_sasl.rel -s erlang halt
+ echo "")
+fi
+
+
+if [ -f $ERL_ROOT/releases/R10B/start_sasl.boot ] && \
+ [ "$start_option" = "query" ]
+then
+ echo "Do you want to use a minimal system startup"
+ echo "instead of the SASL startup? (y/n) [n]: " | tr -d '\012'
+ read reply
+ case $reply in
+ [Yy]*)
+ start_option=minimal ;;
+ *)
+ start_option=sasl ;;
+ esac
+fi
+
+case $start_option in
+ minimal)
+ Name=start_clean ;;
+ sasl)
+ Name=start_sasl ;;
+ *)
+ Name=start_sasl ;;
+esac
+
+cp -p ../releases/R10B/start_*.boot .
+cp -p $Name.boot start.boot
+cp -p ../releases/R10B/$Name.script start.script
+
+#
+# We always run ranlib unless Solaris/SunOS 5
+# but ignore failures.
+#
+if [ "X$TARGET" != "Xsunos5" -a -d $ERL_ROOT/usr/lib ]; then
+ cd $ERL_ROOT/usr/lib
+ for library in lib*.a
+ do
+ (ranlib $library) > /dev/null 2>&1
+ done
+fi
+
+
+#
+# Fixing the man pages
+#
+
+if [ -d $ERL_ROOT/man ]
+then
+ cd $ERL_ROOT
+ ./misc/format_man_pages $ERL_ROOT
+fi
+
+
only in patch2:
unchanged:
--- erlang-10.b.1a.orig/Makefile
+++ erlang-10.b.1a/Makefile
@@ -0,0 +1,568 @@
+# Generated automatically from Makefile.in by configure.
+# ``The contents of this file are subject to the Erlang Public License,
+# Version 1.1, (the "License"); you may not use this file except in
+# compliance with the License. You should have received a copy of the
+# Erlang Public License along with this software. If not, it can be
+# retrieved via the world wide web at http://www.erlang.org/.
+#
+# 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.
+#
+# The Initial Developer of the Original Code is Ericsson Utvecklings AB.
+# Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings
+# AB. All Rights Reserved.''
+#
+# $Id$
+#
+# Toplevel makefile for building the Erlang system
+#
+
+# ----------------------------------------------------------------------
+
+# And you'd think that this would be obvious... :-)
+SHELL = /bin/sh
+
+# The top directory in which Erlang is unpacked
+ERL_TOP = /home/devel/release/erlang-10.b.1a
+
+# erts (Erlang RunTime System) version
+ERTS = erts-5.4.2.1
+
+# ----------------------------------------------------------------------
+
+#
+# The variables below control where Erlang is installed. They are
+# configurable (unless otherwise stated). Some of them are best
+# changed by giving special arguments to configure instead of changing
+# them in this file. Note: If you change them in Makefile, instead of
+# Makefile.in your changes will be lost the next time you run
+# configure.
+#
+
+# prefix from autoconf, default is /usr/local (must be an absolute path)
+prefix = /usr
+exec_prefix = ${prefix}
+
+# The following can be set in case you install Erlang in a different
+# location from where you have configured it to run. This can be
+# useful e.g. when installing on a server that stores the files with a
+# different path from where the clients access them. Or when building
+# rpms.
+#INSTALL_PREFIX =
+# Naah...override `prefix' instead.
+
+# The directory in which user executables (erl, erlc and erl_call) are put
+BINDIR = $(INSTALL_PREFIX)${exec_prefix}/bin
+
+# The directory which will contain installed Erlang version.
+# (ILIBDIR is supposed to be LIBDIR *without* the install prefix)
+ERLANG_LIBDIR = $(INSTALL_PREFIX)${exec_prefix}/lib/erlang
+ERLANG_ILIBDIR = ${exec_prefix}/lib/erlang
+
+# You can *not* change these two, they have to stay this way for now.
+ERLANG_BINDIR = $(ERLANG_LIBDIR)/bin
+ERLANG_ERTSBINDIR = $(ERLANG_LIBDIR)/$(ERTS)/bin
+
+# The directory in which man pages for above executables are put
+ERL_MAN1DIR = $(INSTALL_PREFIX)/usr/share/man/man1
+ERL_MAN1EXT = 1
+
+# The directory in which Erlang private man pages are put. In order
+# not to clutter up the man namespace these are by default put in the
+# Erlang private directory $(ERLANG_ILIBDIR)/man. If you want to
+# install the man pages together with the rest give the argument
+# "--disable-erlang-mandir" when you run configure, which will set
+# MAN_DIR to /usr/share/man.
+# If you want a special suffix on the manpages set ERL_MANEXT to
+# this suffix, e.g. "erl"
+ERL_MANDIR = $(INSTALL_PREFIX)$(ERLANG_ILIBDIR)/man
+ERL_MANEXT =
+
+# ----------------------------------------------------------------------
+
+# Must be GNU make!
+MAKE = make
+
+# This should be set to the target "arch-vendor-os"
+TARGET = i686-pc-linux-gnu
+
+# A BSD compatible install program
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_DATA = ${INSTALL} -m 644
+MKSUBDIRS = ${INSTALL} -d
+
+# Program to create symbolic links
+LN_S = ln -s
+
+# Ranlib program, if not needed set to e.g. ":"
+RANLIB = ranlib
+
+# ----------------------------------------------------------------------
+
+# The directories bootstrap and bootstrap_compiler (during primary bootstrap)
+# are placed under this directory, typically one might want to set
+# this to a fast local filesystem, or, the default, as ERL_TOP
+BOOTSTRAP_ROOT = $(ERL_TOP)
+# Directories which you need in the path if you wish to run the
+# locally built system. (This can be put in front or back of the path
+# depending on which system is preferred.)
+LOCAL_PATH = $(ERL_TOP)/erts/bin/$(TARGET):$(ERL_TOP)/erts/bin
+ifeq ($(TARGET),win32)
+WIN32_WRAPPER_PATH=$(ERL_TOP)/erts/etc/win32/cygwin_tools
+BOOT_PREFIX=$(WIN32_WRAPPER_PATH):$(BOOTSTRAP_ROOT)/bootstrap/bin:
+else
+BOOT_PREFIX=$(BOOTSTRAP_ROOT)/bootstrap/bin:
+endif
+# ----------------------------------------------------------------------
+# Fix up RELEASE_ROOT/TESTROOT havoc
+ifeq ($(RELEASE_ROOT),)
+ifneq ($(TESTROOT),)
+RELEASE_ROOT = $(TESTROOT)
+endif
+endif
+
+
+# ----------------------------------------------------------------------
+
+# A default for the release_tests, not same target dir as release.
+# More TESTROOT havoc...
+ifeq ($(TESTSUITE_ROOT),)
+ifneq ($(TESTROOT),)
+TESTSUITE_ROOT = $(TESTROOT)
+else
+TESTSUITE_ROOT = $(ERL_TOP)/release/tests
+endif
+endif
+
+#
+# The steps to build a working system are:
+# * build an emulator
+# * setup the erl and erlc program in bootstrap/bin
+# * build additional compilers and copy them into bootstrap/lib
+# * use the bootstrap erl and erlc to build all the libs
+#
+all: all_bootstraps \
+ libs local_setup
+
+# With all bootstraps we mean all bootstrapping that is done when
+# the system is delivered in open source, the primary
+# bootstrap is not included, it requires a pre built emulator...
+all_bootstraps: depend emulator \
+ bootstrap_setup \
+ secondary_bootstrap_build secondary_bootstrap_copy \
+ tertiary_bootstrap_build tertiary_bootstrap_copy \
+ fourth_bootstrap_build fourth_bootstrap_copy
+
+#
+# Use these targets when you want to use the erl and erlc
+# binaries in your PATH instead of those created from the
+# pre-compiled Erlang modules under bootstrap/.
+#
+ifeq ($(findstring ose,$(TARGET)),ose)
+noboot:
+ $(MAKE) BOOT_PREFIX= emulator libs
+else
+noboot:
+ $(MAKE) BOOT_PREFIX= emulator libs local_setup
+endif
+noboot_install:
+ $(MAKE) BOOT_PREFIX= install
+
+.PHONY: release release_docs
+
+release:
+ifeq ($(OTP_SMALL_BUILD),true)
+ cd $(ERL_TOP)/lib && $(MAKE) TESTROOT=$(RELEASE_ROOT) release
+else
+ cd $(ERL_TOP)/lib && $(MAKE) BUILD_ALL=1 TESTROOT=$(RELEASE_ROOT)
release
+endif
+ cd $(ERL_TOP)/erts && $(MAKE) BUILD_ALL=1 TESTROOT=$(RELEASE_ROOT)
release
+
+# ---------------------------------------------------------------
+# Target only used when building commercial ERTS patches
+# ---------------------------------------------------------------
+release_docs:
+ifeq ($(OTP_SMALL_BUILD),true)
+ cd $(ERL_TOP)/lib && $(MAKE) TESTROOT=$(RELEASE_ROOT) release_docs
+else
+ cd $(ERL_TOP)/lib && $(MAKE) BUILD_ALL=1 TESTROOT=$(RELEASE_ROOT)
release_docs
+endif
+ cd $(ERL_TOP)/erts && $(MAKE) BUILD_ALL=1 TESTROOT=$(RELEASE_ROOT)
release_docs
+
+
+# ----------------------------------------------------------------------
+ERLANG_EARS=$(BOOTSTRAP_ROOT)/bootstrap/erts
+ELINK=$(BOOTSTRAP_ROOT)/bootstrap/erts/bin/elink
+BOOT_BINDIR=$(BOOTSTRAP_ROOT)/bootstrap/erts/bin
+BEAM_EVM=$(ERL_TOP)/bin/$(TARGET)/beam_evm
+BOOTSTRAP_COMPILER = $(BOOTSTRAP_ROOT)/bootstrap_compiler
+
+emulator:
+ cd erts && ERL_TOP=$(ERL_TOP) $(MAKE) NO_START_SCRIPTS=true $(TYPE)
+
+libs:
+ifeq ($(OTP_SMALL_BUILD),true)
+ cd lib && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) opt
+else
+ cd lib && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) opt BUILD_ALL=true
+endif
+kernel:
+ cd lib/kernel && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) opt BUILD_ALL=true
+
+hlib:
+ cd lib/hipe && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) opt BUILD_ALL=true
+
+dep depend:
+ cd erts/emulator && ERL_TOP=$(ERL_TOP) $(MAKE) generate depend
+ cd erts/lib_src && ERL_TOP=$(ERL_TOP) $(MAKE) depend
+
+# Creates "erl" and "erlc" in bootstrap/bin which uses the precompiled
+# libraries in the bootstrap directory
+
+# ----------------------------------------------------------------------
+# Bootstraps...
+# ----------------------------------------------------------------------
+ifeq ($(TARGET),win32)
+bootstrap_setup:
+ @rm -f $(BOOTSTRAP_ROOT)/bootstrap/bin/erl.exe \
+ $(BOOTSTRAP_ROOT)/bootstrap/bin/erlc.exe \
+ $(BOOTSTRAP_ROOT)/bootstrap/bin/erl.ini \
+ $(BOOTSTRAP_ROOT)/bootstrap/bin/beam.dll
+ make_bootstrap_ini.sh $(BOOTSTRAP_ROOT)/bootstrap \
+ $(ERL_TOP)/bin/$(TARGET)
+ @cp $(ERL_TOP)/bin/$(TARGET)/erlc.exe \
+ $(BOOTSTRAP_ROOT)/bootstrap/bin/erlc.exe
+ @cp $(ERL_TOP)/bin/$(TARGET)/erl.exe \
+ $(BOOTSTRAP_ROOT)/bootstrap/bin/erl.exe
+else
+bootstrap_setup:
+ @rm -f $(BOOTSTRAP_ROOT)/bootstrap/bin/erl \
+ $(BOOTSTRAP_ROOT)/bootstrap/bin/erlc
+ @sed -e "s;%FINAL_ROOTDIR%;$(BOOTSTRAP_ROOT)/bootstrap;" \
+ -e "s;\$$ROOTDIR/erts-.*/bin;$(ERL_TOP)/bin/$(TARGET);" \
+ -e "s;EMU=.*;EMU=beam$(TYPEMARKER);" \
+ $(ERL_TOP)/erts/etc/unix/erl.src.src > \
+ $(BOOTSTRAP_ROOT)/bootstrap/bin/erl
+ @cp $(ERL_TOP)/bin/$(TARGET)/erlc $(BOOTSTRAP_ROOT)/bootstrap/bin/erlc
+ @chmod 755 $(BOOTSTRAP_ROOT)/bootstrap/bin/erl \
+ $(BOOTSTRAP_ROOT)/bootstrap/bin/erlc
+endif
+
+
+secondary_bootstrap_build:
+ cd lib && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) opt SECONDARY_BOOTSTRAP=true
+
+secondary_bootstrap_copy:
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/kernel ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include ; then
mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include ; fi
+ cp -f lib/kernel/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin
+ cp -f lib/kernel/include/*.hrl
$(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/hipe ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/hipe ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/hipe/ebin ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/hipe/ebin ; fi
+ if test -f lib/hipe/ebin/hipe.beam ; then cp lib/hipe/ebin/*.beam
$(BOOTSTRAP_ROOT)/bootstrap/lib/hipe/ebin; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/ebin ; then
mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/ebin ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/include ; then
mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/include ; fi
+ cp lib/parsetools/ebin/*.beam
$(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/ebin
+ cp -f lib/parsetools/include/*.hrl
$(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/include
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/asn1 ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/asn1 ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/asn1/ebin ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/asn1/ebin ; fi
+ cp lib/asn1/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/asn1/ebin
+
+tertiary_bootstrap_build:
+ cd lib && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) opt TERTIARY_BOOTSTRAP=true
+
+tertiary_bootstrap_copy:
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/snmp ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp/ebin ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/snmp/ebin ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp/include ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/snmp/include ; fi
+ cp lib/snmp/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp/ebin
+
+fourth_bootstrap_build:
+ cd lib && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) opt FOURTH_BOOTSTRAP=true
+
+fourth_bootstrap_copy:
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/sasl ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl/ebin ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/sasl/ebin ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl/include ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/sasl/include ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/ic ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/ic ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/ic/ebin ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/ic/ebin ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/ic/include ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/ic/include ; fi
+ cp lib/ic/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/ic/ebin
+ cp -f lib/ic/include/*.idl lib/ic/include/*.h
$(BOOTSTRAP_ROOT)/bootstrap/lib/ic/include
+ cp lib/sasl/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl/ebin
+
+# The first bootstrap build is rarely (never) used in open source, it's
+# used to build the shipped bootstrap directory. The Open source bootstrap
+# stages start with secondary bootstrap.
+#
+# These are the ones used, the other ones (prefixed with old_) are for BC.
+
+# These modules should stay in the kernel directory to make building
+# of the emulator possible
+KERNEL_PRELOAD = otp_ring0 init erl_prim_loader prim_inet prim_file erlang
+
+primary_bootstrap:
+ @echo "=== Building a bootstrap compiler in $(BOOTSTRAP_ROOT)/bootstrap"
+ cd $(ERL_TOP) && \
+ $(MAKE) TESTROOT=$(BOOTSTRAP_ROOT)/bootstrap \
+ primary_bootstrap_build
+ cd $(ERL_TOP) && \
+ $(MAKE) TESTROOT=$(BOOTSTRAP_ROOT)/bootstrap \
+ primary_bootstrap_copy
+ cd $(ERL_TOP)/erts/start_scripts && \
+ $(MAKE) TESTROOT=$(BOOTSTRAP_ROOT)/bootstrap bootstrap_scripts
+
+primary_bootstrap_build: primary_bootstrap_compiler
+ test -d $(TESTROOT) || mkdir -p $(TESTROOT)
+ cd lib && $(MAKE) ERLC_FLAGS='-pa $(BOOTSTRAP_COMPILER)' \
+ BOOTSTRAP=1 opt
+ cd lib/kernel/src && $(MAKE) ERLC_FLAGS='-pa $(BOOTSTRAP_COMPILER)' \
+ HIPE_ENABLED= opt
+
+primary_bootstrap_compiler:
+ test -d $(BOOTSTRAP_COMPILER) || mkdir -p $(BOOTSTRAP_COMPILER)
+ cd lib/compiler && $(MAKE) BOOTSTRAP=1 opt
+ cp -f lib/compiler/ebin/*.beam $(BOOTSTRAP_COMPILER)
+ cd lib/compiler && $(MAKE) BOOTSTRAP=1 clean
+
+primary_bootstrap_copy:
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/kernel ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include ; then
mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include ; fi
+ cp -f lib/kernel/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin
+ cp -f lib/kernel/include/*.hrl
$(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/ebin ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/ebin ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/include ; then
mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/include ; fi
+ cp -f lib/stdlib/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/ebin
+ cp -f lib/stdlib/include/*.hrl
$(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/include
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/compiler ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/compiler ; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/compiler/ebin ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/compiler/ebin ; fi
+ cp -f lib/compiler/ebin/*.beam
$(BOOTSTRAP_ROOT)/bootstrap/lib/compiler/ebin
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/orber ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/orber; fi
+ if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/orber/include ; then mkdir
$(BOOTSTRAP_ROOT)/bootstrap/lib/orber/include; fi
+ cp -f lib/orber/include/* $(BOOTSTRAP_ROOT)/bootstrap/lib/orber/include
+
+# To remove modules left by the bootstrap building, but leave (restore)
+# the modules in kernel which are needed for an emulator build
+KERNEL_PRELOAD_BEAMS=$(KERNEL_PRELOAD:%=$(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin/%.beam)
+primary_bootstrap_cleanup:
+ cd lib && $(MAKE) BOOTSTRAP=1 clean
+ cd lib/kernel/src && $(MAKE) BOOTSTRAP=1 clean
+ cp $(KERNEL_PRELOAD_BEAMS) lib/kernel/ebin
+ rm -rf $(BOOTSTRAP_COMPILER)
+
+# Creates "erl" and "erlc" scripts in bin/erl which uses the libraries in lib
+local_setup:
+ @rm -f erts/bin/erl erts/bin/erlc erts/bin/cerl
+ @cd erts && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) local_setup
+
+
+
+# ----------------------------------------------------------------------
+# Build tests
+# ---------------------------------------------------------------------
+
+# Start with building the test server
+TESTS = test_server
+
+# Tests that can be run on any platform (keep alphabetic order, please)
+TESTS += \
+ asn1_test \
+ compiler_test \
+ emulator_test \
+ epmd_test \
+ erl_interface_test \
+ ic_test \
+ inets_test \
+ jinterface_test \
+ kernel_test \
+ megaco_test \
+ mnemosyne_test \
+ mnesia_session_test \
+ mnesia_test \
+ observer_test \
+ orber_test \
+ os_mon_test \
+ otp_mibs_test \
+ pman_test \
+ sasl_test \
+ snmp_test \
+ runtime_tools_test \
+ stdlib_test \
+ system_test \
+ test_server_test
+
+# Tests that can *not* be run on VxWorks
+ifneq ($(findstring vxworks,$(TARGET)),vxworks)
+TESTS += \
+ cosTransactions_test \
+ cosEvent_test \
+ cosTime_test \
+ cosNotification_test \
+ cosProperty_test \
+ cosFileTransfer_test \
+ cosEventDomain_test \
+ crypto_test \
+ debugger_test \
+ hipe_test \
+ odbc_test \
+ ssl_test \
+ tools_test \
+ toolbar_test \
+ xmerl_test
+endif
+
+.PHONY: tests release_tests test_server emulator_test system_test epmd_test
+
+tests release_tests: $(TESTS)
+
+# Build the test_server
+test_server:
+ cd lib/test_server && $(MAKE) TESTROOT=$(TESTSUITE_ROOT)
release_tests
+
+emulator_test:
+ cd erts/emulator/test && $(MAKE) TESTROOT=$(TESTSUITE_ROOT)
release_tests
+
+system_test:
+ cd erts/test && $(MAKE) TESTROOT=$(TESTSUITE_ROOT)
release_tests
+
+epmd_test:
+ cd erts/epmd/test && $(MAKE) TESTROOT=$(TESTSUITE_ROOT)
release_tests
+
+%_test:
+ @dir="`echo $@ | sed 's/_test$$//'`"; \
+ cd lib/$$dir/test && $(MAKE) TESTROOT=$(TESTSUITE_ROOT)
release_tests
+# Should I also set TESTROOT_DIR=$(TESTSUITE_ROOT) ?
+# ----------------------------------------------------------------------
+
+# ----------------------------------------------------------------------
+# Obsolete type of bootstrap where all stages where built with installed sytem
+# shuld no longer be used and is soon to be removed.
+# Abbreviations: OC = Old Compiler, NC = New Compiler,
+# OE = Old Emulator, NE = New Emulator
+
+old_com_bootstrap: old_bootstrap_nc_for_ne_all_stages old_bootstrap_ne
old_bootstrap_scripts
+
+#
+# Builds the New Compiler for the New Emulator (using existing erlc
+# and possibly new compiler) then copy everything to the release area.
+# Use to create the commerciall bootstrap version, which should be obsolete.
+#
+old_bootstrap_nc_for_ne_all_stages:
+ test -d $(TESTROOT) || mkdir -p $(TESTROOT)
+ cd lib && $(MAKE) BOOTSTRAP=1 TYPE=release release
+ cd lib && $(MAKE) SECONDARY_BOOTSTRAP=1 TYPE=release release
+ cd lib && $(MAKE) TERTIARY_BOOTSTRAP=1 TYPE=release release
+ cd lib && $(MAKE) FOURTH_BOOTSTRAP=1 TYPE=release release
+
+
+
+old_bootstrap_ne:
+ cd erts && $(MAKE) release
+
+old_bootstrap_scripts:
+ cd erts/start_scripts && $(MAKE) release
+
+
+# This is one strange name for a target, this actually builds and strips only
+# the primary bootstrap, a minimal set of beam files to be able to continue
+# bootstrap builds. It's used by other makefiles, so I refrain from
+# changing the name right now...
+bootstrap_nc_for_ne_no_debug_sym:
+ test -d $(TESTROOT) || mkdir -p $(TESTROOT)
+ cd lib && $(MAKE) ERLC_FLAGS='-pa $(BOOTSTRAP_COMPILER)' \
+ BOOTSTRAP=1 TYPE=release release
+ $(ERL_TOP)/erts/emulator/utils/beam_strip $(TESTROOT)/lib/*/ebin/*.beam
+
+# ----------------------------------------------------------------------
+
+#
+# Install
+#
+# Order is important here, don't change it!
+#
+install: install.dirs install.emulator install.libs install.Install install.bin
+
+install.emulator:
+ cd erts && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) TESTROOT=$(ERLANG_LIBDIR) release
+
+install.libs:
+ifeq ($(OTP_SMALL_BUILD),true)
+ cd lib && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) TESTROOT=$(ERLANG_LIBDIR) release
+else
+ cd lib && \
+ ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \
+ $(MAKE) TESTROOT=$(ERLANG_LIBDIR) BUILD_ALL=true release
+endif
+
+install.Install:
+ cd $(ERLANG_LIBDIR) && ./Install -minimal $(ERLANG_LIBDIR)
+
+#
+# Erlang base public files
+#
+install.bin:
+ rm -f $(BINDIR)/erl $(BINDIR)/erlc \
+ $(BINDIR)/ecc $(BINDIR)/elink $(BINDIR)/ear $(BINDIR)/escript
+ ${LN_S} $(ERLANG_BINDIR)/erl $(BINDIR)/erl
+ ${LN_S} $(ERLANG_BINDIR)/erlc $(BINDIR)/erlc
+ ${LN_S} $(ERLANG_BINDIR)/ecc $(BINDIR)/ecc
+ ${LN_S} $(ERLANG_BINDIR)/elink $(BINDIR)/elink
+ ${LN_S} $(ERLANG_BINDIR)/ear $(BINDIR)/ear
+ ${LN_S} $(ERLANG_BINDIR)/escript $(BINDIR)/escript
+
+#
+# Directories needed before we can install
+#
+install.dirs:
+ if test ! -d $(BINDIR) ; then ${MKSUBDIRS} $(BINDIR); fi
+ ${MKSUBDIRS} $(ERLANG_LIBDIR)
+ ${MKSUBDIRS} $(ERLANG_LIBDIR)/usr/lib
+
+# ----------------------------------------------------------------------
+
+#
+# Clean targets
+#
+
+clean:
+ rm -f *~ *.bak config.log config.status
+ find . -type f -name SKIP -print | xargs $(RM)
+ cd erts && ERL_TOP=$(ERL_TOP) $(MAKE) clean
+ cd lib && ERL_TOP=$(ERL_TOP) $(MAKE) clean BUILD_ALL=true
+
+#
+# Just wipe out emulator, not libraries
+#
+
+eclean:
+ cd erts && ERL_TOP=$(ERL_TOP) $(MAKE) clean
+
+# ----------------------------------------------------------------------
signature.asc
Description: Digital signature

