summaryrefslogtreecommitdiff
path: root/Porting
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-06-15 00:15:52 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-06-15 00:15:52 +0000
commit5440bc8ef38c925fa824ae72b6c7ad2f21cbda6e (patch)
tree33768a0c14b79a902fd43151b9ff12ca93f62233 /Porting
parentd31cdfb6c818e318a1eec541457f7fecc9be0d36 (diff)
downloadperl-5440bc8ef38c925fa824ae72b6c7ad2f21cbda6e.tar.gz
The first steps towards cross-compilation.
Abstract execution of compiled test executables with $run, and abstract transfer of files with $to and $from. Under cross-compilation the $run, $to, and $from will point to appropriate wrapper scripts, by default ssh and scp, but also rsh, rcp, and cp are supported. If not cross-compiling, they will be set to '', ':', and ':', respectively. With these patches I was able to get Configure for iPAQ ARM Linux on an Intel Linux about 95% right (only a few tests failed to execute or they produced incorrect results), and I was able to compile a functional miniperl. The symbol crosscompile renamed to be usecrosscompile, the corresponding C symbol from CROSSCOMPILE to USE_CROSS_COMPILE. p4raw-id: //depot/perl@10592
Diffstat (limited to 'Porting')
-rw-r--r--Porting/Glossary31
-rw-r--r--Porting/config.sh18
-rw-r--r--Porting/config_H96
3 files changed, 91 insertions, 54 deletions
diff --git a/Porting/Glossary b/Porting/Glossary
index 7a5e580b73..26e6e4ca92 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -328,11 +328,6 @@ cppsymbols (Cppsym.U):
not in this list, see ccsymbols and cppccsymbols.
The list is a space-separated list of symbol=value tokens.
-crosscompile (crosscompile.U):
- This variable conditionally defines the CROSSCOMPILE symbol
- which signifies that the build process is be a cross-compilation.
- This is normally set by hints files or from Configure command line.
-
cryptlib (d_crypt.U):
This variable holds -lcrypt or the path to a libcrypt.a archive if
the crypt() function is not defined in the standard C library. It is
@@ -1984,6 +1979,12 @@ freetype (mallocsrc.U):
This variable contains the return type of free(). It is usually
void, but occasionally int.
+from (Cross.U):
+ This variable contains the command used by Configure
+ to copy files from the target host. Useful and available
+ only during Perl build.
+ The string ':' if not cross-compiling.
+
full_ar (Loc_ar.U):
This variable contains the full pathname to 'ar', whether or
not the user has specified 'portability'. This is only used
@@ -3197,6 +3198,12 @@ rmail (Loc.U):
This variable is defined but not used by Configure.
The value is a plain '' and is not useful.
+run (Cross.U):
+ This variable contains the command used by Configure
+ to copy and execute a cross-compiled executable in the
+ target host. Useful and available only during Perl build.
+ Empty string '' if not cross-compiling.
+
runnm (usenm.U):
This variable contains 'true' or 'false' depending whether the
nm extraction should be performed or not, according to the value
@@ -3582,6 +3589,10 @@ tar (Loc.U):
This variable is defined but not used by Configure.
The value is a plain '' and is not useful.
+targetarch (Cross.U):
+ If cross-compiling, this variable contains the target architecture.
+ If not, this will be empty.
+
tbl (Loc.U):
This variable is defined but not used by Configure.
The value is a plain '' and is not useful.
@@ -3603,6 +3614,12 @@ timetype (d_time.U):
or time_t on BSD sites (in which case <sys/types.h> should be
included). Anyway, the type Time_t should be used.
+to (Cross.U):
+ This variable contains the command used by Configure
+ to copy to from the target host. Useful and available
+ only during Perl build.
+ The string ':' if not cross-compiling.
+
touch (Loc.U):
This variable is used internally by Configure to determine the
full pathname (if any) of the touch program. After Configure runs,
@@ -3699,6 +3716,10 @@ use64bitint (use64bits.U):
This may mean using for example "long longs", while your memory
may still be limited to 2 gigabytes.
+usecrosscompile (Cross.U):
+ This variable conditionally defines the USE_CROSS_COMPILE symbol,
+ and indicates that Perl has been cross-compiled.
+
usedl (dlsrc.U):
This variable indicates if the system supports dynamic
loading of some sort. See also dlsrc and dlobj.
diff --git a/Porting/config.sh b/Porting/config.sh
index a7c490c582..b804e9526b 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -8,7 +8,7 @@
# Package name : perl5
# Source directory : .
-# Configuration time: Wed Jun 13 21:04:31 EET DST 2001
+# Configuration time: Fri Jun 15 02:15:37 EET DST 2001
# Configured by : jhi
# Target system : osf1 alpha.hut.fi v4.0 878 alpha
@@ -63,7 +63,7 @@ ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_
ccversion='V5.6-082'
cf_by='jhi'
cf_email='yourname@yourhost.yourplace.com'
-cf_time='Wed Jun 13 21:04:31 EET DST 2001'
+cf_time='Fri Jun 15 02:15:37 EET DST 2001'
charsize='1'
chgrp=''
chmod=''
@@ -83,7 +83,6 @@ cppminus=''
cpprun='/usr/bin/cpp'
cppstdin='cppstdin'
cppsymbols='_AES_SOURCE=1 __alpha=1 __ALPHA=1 _ANSI_C_SOURCE=1 __LANGUAGE_C__=1 _LONGLONG=1 __osf__=1 _OSF_SOURCE=1 _POSIX_C_SOURCE=199506 _POSIX_SOURCE=1 _REENTRANT=1 __STDC__=1 _SYSTYPE_BSD=1 __unix__=1 _XOPEN_SOURCE=1'
-crosscompile='undef'
cryptlib=''
csh='csh'
d_Gconvert='gcvt((x),(n),(b))'
@@ -439,7 +438,7 @@ eunicefix=':'
exe_ext=''
expr='expr'
extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar PerlIO/Via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread Time/HiRes Time/Piece XS/Typemap attrs re Errno'
-fflushNULL='define'
+fflushNULL='undef'
fflushall='undef'
find=''
firstmakefile='makefile'
@@ -447,6 +446,7 @@ flex=''
fpossize='8'
fpostype='fpos_t'
freetype='void'
+from=':'
full_ar='/usr/bin/ar'
full_csh='/usr/bin/csh'
full_sed='/usr/bin/sed'
@@ -670,7 +670,7 @@ patchlevel='7'
path_sep=':'
perl5='/u/vieraat/vieraat/jhi/Perl/bin/perl'
perl=''
-perl_patchlevel='10537'
+perl_patchlevel='10575'
perladmin='yourname@yourhost.yourplace.com'
perllibs='-lm -liconv -lutil -lpthread -lexc'
perlpath='/opt/perl/bin/perl'
@@ -697,6 +697,7 @@ rd_nodata='-1'
revision='5'
rm='rm'
rmail=''
+run=''
runnm='true'
sPRIEUldbl='"E"'
sPRIFUldbl='"F"'
@@ -771,11 +772,13 @@ subversion='1'
sysman='/usr/man/man1'
tail=''
tar=''
+targetarch=''
tbl=''
tee=''
test='test'
timeincl='/usr/include/sys/time.h '
timetype='time_t'
+to=':'
touch='touch'
tr='tr'
trnl='\n'
@@ -798,6 +801,7 @@ uquadtype='unsigned long'
use5005threads='define'
use64bitall='define'
use64bitint='define'
+usecrosscompile='undef'
usedl='define'
useithreads='undef'
uselargefiles='define'
@@ -809,7 +813,7 @@ usenm='true'
useopcode='true'
useperlio='define'
useposix='true'
-usereentrant=''
+usereentrant='undef'
usesfio='false'
useshrplib='true'
usesocks='undef'
@@ -866,7 +870,7 @@ PERL_SUBVERSION=1
PERL_API_REVISION=5
PERL_API_VERSION=5
PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=10537
+PERL_PATCHLEVEL=10575
PERL_CONFIG_SH=true
# Variables propagated from previous config.sh file.
pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
diff --git a/Porting/config_H b/Porting/config_H
index 3e85c17e2e..9aea69c251 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -17,7 +17,7 @@
/*
* Package name : perl5
* Source directory : .
- * Configuration time: Wed Jun 13 21:04:31 EET DST 2001
+ * Configuration time: Fri Jun 15 02:15:37 EET DST 2001
* Configured by : jhi
* Target system : osf1 alpha.hut.fi v4.0 878 alpha
*/
@@ -125,26 +125,6 @@
*/
#define HAS_DLERROR /**/
-/* SETUID_SCRIPTS_ARE_SECURE_NOW:
- * This symbol, if defined, indicates that the bug that prevents
- * setuid scripts from being secure is not present in this kernel.
- */
-/* DOSUID:
- * This symbol, if defined, indicates that the C program should
- * check the script that it is executing for setuid/setgid bits, and
- * attempt to emulate setuid/setgid on systems that have disabled
- * setuid #! scripts because the kernel can't do it securely.
- * It is up to the package designer to make sure that this emulation
- * is done securely. Among other things, it should do an fstat on
- * the script it just opened to make sure it really is a setuid/setgid
- * script, it should make sure the arguments passed correspond exactly
- * to the argument on the #! line, and it should not trust any
- * subprocesses to which it must pass the filename rather than the
- * file descriptor of the script to be executed.
- */
-/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
-/*#define DOSUID / **/
-
/* HAS_DUP2:
* This symbol, if defined, indicates that the dup2 routine is
* available to duplicate file descriptors.
@@ -922,17 +902,6 @@
*/
#define I_VALUES /**/
-/* I_STDARG:
- * This symbol, if defined, indicates that <stdarg.h> exists and should
- * be included.
- */
-/* I_VARARGS:
- * This symbol, if defined, indicates to the C program that it should
- * include <varargs.h>.
- */
-#define I_STDARG /**/
-/*#define I_VARARGS / **/
-
/* I_VFORK:
* This symbol, if defined, indicates to the C program that it should
* include vfork.h.
@@ -966,12 +935,6 @@
*/
#define SH_PATH "/bin/sh" /**/
-/* CROSSCOMPILE:
- * This symbol, if defined, signifies that we our
- * build process is a cross-compilation.
- */
-/*#define CROSSCOMPILE / **/
-
/* INTSIZE:
* This symbol contains the value of sizeof(int) so that the C
* preprocessor can make decisions based on it.
@@ -1055,8 +1018,8 @@
* double, or a long double when applicable. Usual values are 2,
* 4 and 8. The default is eight, for safety.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
-# define MEM_ALIGNBYTES 8
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
+#define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES 8
#endif
@@ -1132,7 +1095,7 @@
* so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
# if LONGSIZE == 4
# define BYTEORDER 0x1234
@@ -2361,7 +2324,7 @@
* Note that if fflushNULL is defined, fflushall will not
* even be probed for and will be left undefined.
*/
-#define FFLUSH_NULL /**/
+/*#define FFLUSH_NULL / **/
/*#define FFLUSH_ALL / **/
/* Fpos_t:
@@ -3247,12 +3210,18 @@
* This symbol, if defined, indicates that Perl should
* be built to use the old draft POSIX threads API.
*/
+/* USE_REENTRANT_API:
+ * This symbol, if defined, indicates that Perl should
+ * try to use the various _r versions of library functions.
+ * This is extremely experimental.
+ */
#define USE_5005THREADS /**/
/*#define USE_ITHREADS / **/
#if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
#define USE_THREADS /* until src is revised*/
#endif
/*#define OLD_PTHREADS_API / **/
+/*#define USE_REENTRANT_API / **/
/* PERL_VENDORARCH:
* If defined, this symbol contains the name of a private library.
@@ -3344,6 +3313,49 @@
#define PERL_XS_APIVERSION "5.7.1"
#define PERL_PM_APIVERSION "5.005"
+/* SETUID_SCRIPTS_ARE_SECURE_NOW:
+ * This symbol, if defined, indicates that the bug that prevents
+ * setuid scripts from being secure is not present in this kernel.
+ */
+/* DOSUID:
+ * This symbol, if defined, indicates that the C program should
+ * check the script that it is executing for setuid/setgid bits, and
+ * attempt to emulate setuid/setgid on systems that have disabled
+ * setuid #! scripts because the kernel can't do it securely.
+ * It is up to the package designer to make sure that this emulation
+ * is done securely. Among other things, it should do an fstat on
+ * the script it just opened to make sure it really is a setuid/setgid
+ * script, it should make sure the arguments passed correspond exactly
+ * to the argument on the #! line, and it should not trust any
+ * subprocesses to which it must pass the filename rather than the
+ * file descriptor of the script to be executed.
+ */
+/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
+/*#define DOSUID / **/
+
+/* I_STDARG:
+ * This symbol, if defined, indicates that <stdarg.h> exists and should
+ * be included.
+ */
+/* I_VARARGS:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <varargs.h>.
+ */
+#define I_STDARG /**/
+/*#define I_VARARGS / **/
+
+/* USE_CROSS_COMPILE:
+ * This symbol, if defined, indicates that Perl is being cross-compiled.
+ */
+/* PERL_TARGETARCH:
+ * This symbol, if defined, indicates the target architecture
+ * Perl has been cross-compiled to. Undefined if not a cross-compile.
+ */
+#ifndef USE_CROSS_COMPILE
+/*#define USE_CROSS_COMPILE / **/
+#define PERL_TARGETARCH "" /**/
+#endif
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up