Rodger Allen on Mon, 29 Sep 2003 16:44:20 +1000 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
patch for building with openbsd |
Hello I've been playing with getting pari to compile on OpenBSD and have made some patches to the current CVS tree (29 Sept 2003) for this purpose. The attached is just a "cvs diff -c" against the tree. I have tested this against the pari kernel, and linked against gmp. This was built against OpenBSD-3.3 on an i386. I do not have access to other hardware at the moment, so I cannot say how it would go against anything but this architecture. Mostly this is derived from looking at how it was built for NetBSD. Hoping this meets with the satisfaction of the main pari developers. Keep up the excellent work! regards Rodger Allen
cvs server: Diffing pari cvs server: Diffing pari/Odos cvs server: Diffing pari/config Index: pari/config/arch-osname =================================================================== RCS file: /home/megrez/cvsroot/pari/config/arch-osname,v retrieving revision 1.9 diff -c -r1.9 arch-osname *** pari/config/arch-osname 2003/04/10 19:46:10 1.9 --- pari/config/arch-osname 2003/09/29 06:12:21 *************** *** 11,17 **** fx2800) arch=fx2800; osname=concentrix;; hp*) osname=hpux; arch=`uname -m` if test "x$arch" = "x" ; then arch=hppa; fi ;; ! freebsd|os2) arch=ix86;; ultrix) arch=mips;; nextstep) arch=`file /bin/sh | sed 's/.*(for architecture \(.*\))/\1/'`;; darwin*) arch=`uname -p` --- 11,17 ---- fx2800) arch=fx2800; osname=concentrix;; hp*) osname=hpux; arch=`uname -m` if test "x$arch" = "x" ; then arch=hppa; fi ;; ! freebsd|os2|openbsd) arch=ix86;; ultrix) arch=mips;; nextstep) arch=`file /bin/sh | sed 's/.*(for architecture \(.*\))/\1/'`;; darwin*) arch=`uname -p` Index: pari/config/get_archos =================================================================== RCS file: /home/megrez/cvsroot/pari/config/get_archos,v retrieving revision 1.13 diff -c -r1.13 get_archos *** pari/config/get_archos 2003/06/19 13:38:37 1.13 --- pari/config/get_archos 2003/09/29 06:12:22 *************** *** 27,33 **** ========================================================================== I know of the following Operating Systems EOM ! rep='os2 freebsd cygwin linux hpux aix osf1 solaris sunos nextstep concentrix irix'; . ./display echo $n ..."Any of these apply ? $c" dflt=$osname; . ./myread --- 27,33 ---- ========================================================================== I know of the following Operating Systems EOM ! rep='os2 freebsd openbsd cygwin linux hpux aix osf1 solaris sunos nextstep concentrix irix'; . ./display echo $n ..."Any of these apply ? $c" dflt=$osname; . ./myread Index: pari/config/get_cc =================================================================== RCS file: /home/megrez/cvsroot/pari/config/get_cc,v retrieving revision 1.21 diff -c -r1.21 get_cc *** pari/config/get_cc 2003/06/15 15:52:53 1.21 --- pari/config/get_cc 2003/09/29 06:12:23 *************** *** 145,151 **** OPTFLAGS=-O; cflags=-Ae; DLCFLAGS=+z;; aix-*) OPTFLAGS='-O2 -qtune=auto -qmaxmem=8192' cflags='-qlanglvl=ansi';; ! cygwin*|linux-i?86|freebsd-i?86) OPTFLAGS=-O2; cflags=-m486;; osf1-*) OPTFLAGS='-O4 -migrate -ifo -Olimit 9999';; sunos-*) OPTFLAGS=-fast; PRFFLAGS='-pg -Bstatic';; --- 145,151 ---- OPTFLAGS=-O; cflags=-Ae; DLCFLAGS=+z;; aix-*) OPTFLAGS='-O2 -qtune=auto -qmaxmem=8192' cflags='-qlanglvl=ansi';; ! cygwin*|linux-i?86|freebsd-i?86|openbsd-i?86) OPTFLAGS=-O2; cflags=-m486;; osf1-*) OPTFLAGS='-O4 -migrate -ifo -Olimit 9999';; sunos-*) OPTFLAGS=-fast; PRFFLAGS='-pg -Bstatic';; Index: pari/config/get_dlld =================================================================== RCS file: /home/megrez/cvsroot/pari/config/get_dlld,v retrieving revision 1.26 diff -c -r1.26 get_dlld *** pari/config/get_dlld 2003/04/19 09:58:21 1.26 --- pari/config/get_dlld 2003/09/29 06:12:23 *************** *** 9,15 **** soname=.$soname_num do_dll=yes case "$osname" in ! aix|osf1|solaris|linux|freebsd) case $libpari_base in pari) sodest=.$version.$patch;; # released version *) sodest=.$patch.0.0;; # unstable version --- 9,15 ---- soname=.$soname_num do_dll=yes case "$osname" in ! aix|osf1|solaris|linux|freebsd|openbsd) case $libpari_base in pari) sodest=.$version.$patch;; # released version *) sodest=.$patch.0.0;; # unstable version *************** *** 63,68 **** --- 63,69 ---- aix) DLLDFLAGS='-r' ;; hpux) DLLDFLAGS='-b' ;; freebsd) DLLDFLAGS='-Bshareable -x' ;; + openbsd) DLLDFLAGS="-shared" ;; irix) DLLDFLAGS='-shared -elf -no_unresolved -all' ;; osf1) DLLDFLAGS='-shared' ;; sunos) DLLDFLAGS='-assert nodefinitions' ;; *************** *** 82,88 **** DLLDFLAGS="-shared -mimpure-text \$(CFLAGS) $DLLDFLAGS" fi case "$osname" in ! osf1|freebsd|linux|sunos|solaris) EXTRADLLDFLAGS='-lc ${LIBS}';; esac if test "$fastread" != yes; then --- 83,89 ---- DLLDFLAGS="-shared -mimpure-text \$(CFLAGS) $DLLDFLAGS" fi case "$osname" in ! osf1|freebsd|openbsd|linux|sunos|solaris) EXTRADLLDFLAGS='-lc ${LIBS}';; esac if test "$fastread" != yes; then Index: pari/config/get_ld =================================================================== RCS file: /home/megrez/cvsroot/pari/config/get_ld,v retrieving revision 1.17 diff -c -r1.17 get_ld *** pari/config/get_ld 2003/02/27 00:35:24 1.17 --- pari/config/get_ld 2003/09/29 06:12:23 *************** *** 34,39 **** --- 34,43 ---- linux-*|cygwin*|freebsd-*) tmp=`./ldflags "$LDneedsWl" "-export-dynamic"` ldflags="$ldflags $tmp" ;; + openbsd-*) + retmp=`./ldflags "$LDneedsWl" "-export-dynamic"` + tmp=`echo $retmp | sed -e 's/-Wl,-export-dynamic/-Wl-export-dynamic/'` + ldflags="$ldflags $tmp" ;; aix-*) ldflags='-brtl' ;; # in case we link against a shared library os2-*) ldflags="$ldflags -Zexe" case "$optimization" in *************** *** 51,57 **** echo "Executable linker is $LD $LDFLAGS" case "$osname" in ! osf1|linux|cygwin*|freebsd) runpathprefix='-rpath ' ;; solaris) runpathprefix='-R ' ;; hpux) runpathprefix='+b ' ;; aix) runpathprefix='-blibpath:' ;; --- 55,61 ---- echo "Executable linker is $LD $LDFLAGS" case "$osname" in ! osf1|linux|cygwin*|freebsd|openbsd) runpathprefix='-rpath ' ;; solaris) runpathprefix='-R ' ;; hpux) runpathprefix='+b ' ;; aix) runpathprefix='-blibpath:' ;; cvs server: Diffing pari/doc cvs server: Diffing pari/emacs cvs server: Diffing pari/examples cvs server: Diffing pari/misc cvs server: Diffing pari/src cvs server: Diffing pari/src/basemath cvs server: Diffing pari/src/desc cvs server: Diffing pari/src/desc/PARI cvs server: Diffing pari/src/functions cvs server: Diffing pari/src/functions/conversions cvs server: Diffing pari/src/functions/elliptic_curves cvs server: Diffing pari/src/functions/graphic cvs server: Diffing pari/src/functions/linear_algebra cvs server: Diffing pari/src/functions/number_fields cvs server: Diffing pari/src/functions/number_theoretical cvs server: Diffing pari/src/functions/operators cvs server: Diffing pari/src/functions/polynomials cvs server: Diffing pari/src/functions/programming cvs server: Diffing pari/src/functions/sums cvs server: Diffing pari/src/functions/transcendental cvs server: Diffing pari/src/gp cvs server: Diffing pari/src/graph cvs server: Diffing pari/src/headers cvs server: Diffing pari/src/kernel cvs server: Diffing pari/src/kernel/alpha cvs server: Diffing pari/src/kernel/gmp cvs server: Diffing pari/src/kernel/hppa cvs server: Diffing pari/src/kernel/ia64 cvs server: Diffing pari/src/kernel/ix86 Index: pari/src/kernel/ix86/l0asm.c =================================================================== RCS file: /home/megrez/cvsroot/pari/src/kernel/ix86/l0asm.c,v retrieving revision 1.4 diff -c -r1.4 l0asm.c *** pari/src/kernel/ix86/l0asm.c 2001/03/12 15:28:33 1.4 --- pari/src/kernel/ix86/l0asm.c 2003/09/29 06:12:25 *************** *** 36,42 **** global variable `hiremainder'. */ /* This should ideally be determined at configure time. */ ! #if defined(__EMX__) || defined(__DJGCC__) || defined(__GO32__) || (defined(linux) && !defined(__ELF__)) || defined(__386BSD__) || defined(__NetBSD__) || (defined(__FreeBSD__) && !defined(__ELF__)) || defined(NeXT) || defined(__CYGWIN32__) || defined(__MINGW32__) # define ASM_UNDERSCORE #endif --- 36,42 ---- global variable `hiremainder'. */ /* This should ideally be determined at configure time. */ ! #if defined(__EMX__) || defined(__DJGCC__) || defined(__GO32__) || (defined(linux) && !defined(__ELF__)) || defined(__386BSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || (defined(__FreeBSD__) && !defined(__ELF__)) || defined(NeXT) || defined(__CYGWIN32__) || defined(__MINGW32__) # define ASM_UNDERSCORE #endif Index: pari/src/kernel/ix86/level0.h =================================================================== RCS file: /home/megrez/cvsroot/pari/src/kernel/ix86/level0.h,v retrieving revision 1.7 diff -c -r1.7 level0.h *** pari/src/kernel/ix86/level0.h 2003/03/02 18:10:47 1.7 --- pari/src/kernel/ix86/level0.h 2003/09/29 06:12:26 *************** *** 47,53 **** /* Different assemblers have different syntax for the "shldl" and "shrdl" instructions. */ ! #if defined(__EMX__) || defined(__DJGCC__) || defined(__GO32__) || (defined(linux) && !defined(__ELF__)) || defined(__386BSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(NeXT) || defined(__CYGWIN32__) || defined(__MINGW32__) || defined(COHERENT) # define SHCL "%%cl," #else # define SHCL --- 47,53 ---- /* Different assemblers have different syntax for the "shldl" and "shrdl" instructions. */ ! #if defined(__EMX__) || defined(__DJGCC__) || defined(__GO32__) || (defined(linux) && !defined(__ELF__)) || defined(__386BSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(NeXT) || defined(__CYGWIN32__) || defined(__MINGW32__) || defined(COHERENT) # define SHCL "%%cl," #else # define SHCL cvs server: Diffing pari/src/kernel/m68k cvs server: Diffing pari/src/kernel/none cvs server: Diffing pari/src/kernel/ppc cvs server: Diffing pari/src/kernel/sparcv7 cvs server: Diffing pari/src/kernel/sparcv8 cvs server: Diffing pari/src/kernel/sparcv8_micro cvs server: Diffing pari/src/kernel/sparcv8_super cvs server: Diffing pari/src/kernel/sparcv9 cvs server: Diffing pari/src/language cvs server: Diffing pari/src/modules cvs server: Diffing pari/src/systems cvs server: Diffing pari/src/systems/darwin cvs server: Diffing pari/src/systems/os2 cvs server: Diffing pari/src/test cvs server: Diffing pari/src/test/32 cvs server: Diffing pari/src/test/64 cvs server: Diffing pari/src/test/in