diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-06-15 00:15:52 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-06-15 00:15:52 +0000 |
commit | 5440bc8ef38c925fa824ae72b6c7ad2f21cbda6e (patch) | |
tree | 33768a0c14b79a902fd43151b9ff12ca93f62233 /Porting | |
parent | d31cdfb6c818e318a1eec541457f7fecc9be0d36 (diff) | |
download | perl-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/Glossary | 31 | ||||
-rw-r--r-- | Porting/config.sh | 18 | ||||
-rw-r--r-- | Porting/config_H | 96 |
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 |