1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
# hints/openbsd.sh
#
# hints file for OpenBSD; Todd Miller <millert@openbsd.org>
# Edited to allow Configure command-line overrides by
# Andy Dougherty <doughera@lafayette.edu>
#
# To build with distribution paths, use:
# ./Configure -des -Dopenbsd_distribution=defined
#
# OpenBSD has a better malloc than perl...
test "$usemymalloc" || usemymalloc='n'
# malloc wrap works
case "$usemallocwrap" in
'') usemallocwrap='define' ;;
esac
# Currently, vfork(2) is not a real win over fork(2).
usevfork="$undef"
# In OpenBSD < 3.3, the setre?[ug]id() are emulated using the
# _POSIX_SAVED_IDS functionality which does not have the same
# semantics as 4.3BSD. Starting with OpenBSD 3.3, the original
# semantics have been restored.
case "$osvers" in
[0-2].*|3.[0-2])
d_setregid=$undef
d_setreuid=$undef
d_setrgid=$undef
d_setruid=$undef
esac
#
# Not all platforms support dynamic loading...
# For the case of "$openbsd_distribution", the hints file
# needs to know whether we are using dynamic loading so that
# it can set the libperl name appropriately.
# Allow command line overrides.
#
ARCH=`arch | sed 's/^OpenBSD.//'`
case "${ARCH}-${osvers}" in
alpha-2.[0-8]|mips-2.[0-8]|powerpc-2.[0-7]|m88k-[2-4].*|m88k-5.[0-2]|hppa-3.[0-5]|vax-*)
test -z "$usedl" && usedl=$undef
;;
*)
test -z "$usedl" && usedl=$define
# We use -fPIC here because -fpic is *NOT* enough for some of the
# extensions like Tk on some OpenBSD platforms (ie: sparc)
cccdlflags="-DPIC -fPIC $cccdlflags"
case "$osvers" in
[01].*|2.[0-7]|2.[0-7].*)
lddlflags="-Bshareable $lddlflags"
;;
2.[8-9]|3.0)
ld=${cc:-cc}
lddlflags="-shared -fPIC $lddlflags"
;;
*) # from 3.1 onwards
ld=${cc:-cc}
lddlflags="-shared -fPIC $lddlflags"
libswanted=`echo $libswanted | sed 's/ dl / /'`
;;
esac
# We need to force ld to export symbols on ELF platforms.
# Without this, dlopen() is crippled.
ELF=`${cc:-cc} -dM -E - </dev/null | grep __ELF__`
test -n "$ELF" && ldflags="-Wl,-E $ldflags"
;;
esac
#
# Tweaks for various versions of OpenBSD
#
case "$osvers" in
2.5)
# OpenBSD 2.5 has broken odbm support
i_dbm=$undef
;;
esac
# OpenBSD doesn't need libcrypt but many folks keep a stub lib
# around for old NetBSD binaries.
libswanted=`echo $libswanted | sed 's/ crypt / /'`
libswanted=`echo $libswanted | sed 's/ util / /'`
# Configure can't figure this out non-interactively
d_suidsafe=$define
# cc is gcc so we can do better than -O
# Allow a command-line override, such as -Doptimize=-g
case "${ARCH}-${osvers}" in
hppa-3.3|m88k-2.*|m88k-3.[0-3])
test "$optimize" || optimize='-O0'
;;
m88k-3.4)
test "$optimize" || optimize='-O1'
;;
*)
test "$optimize" || optimize='-O2'
;;
esac
# Special per-arch specific ccflags
case "${ARCH}-${osvers}" in
vax-*)
ccflags="-DUSE_PERL_ATOF=0 $ccflags"
;;
esac
# This script UU/usethreads.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use threads.
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
# any openbsd version dependencies with pthreads?
ccflags="-pthread $ccflags"
ldflags="-pthread $ldflags"
case "$osvers" in
[0-2].*|3.[0-2])
# Change from -lc to -lc_r
set `echo "X $libswanted " | sed 's/ c / c_r /'`
shift
libswanted="$*"
;;
esac
case "$osvers" in
[012].*|3.[0-6])
# Broken up to OpenBSD 3.6, fixed in OpenBSD 3.7
d_getservbyname_r=$undef ;;
esac
;;
*)
libswanted=`echo $libswanted | sed 's/ pthread / /'`
esac
EOCBU
# When building in the OpenBSD tree we use different paths
# This is only part of the story, the rest comes from config.over
case "$openbsd_distribution" in
''|$undef|false) ;;
*)
# We put things in /usr, not /usr/local
prefix='/usr'
prefixexp='/usr'
sysman='/usr/share/man/man1'
libpth='/usr/lib'
glibpth='/usr/lib'
# Local things, however, do go in /usr/local
siteprefix='/usr/local'
siteprefixexp='/usr/local'
# Ports installs non-std libs in /usr/local/lib so look there too
locincpth=''
loclibpth=''
# Link perl with shared libperl
if [ "$usedl" = "$define" -a -r $src/shlib_version ]; then
useshrplib=true
libperl=`. $src/shlib_version; echo libperl.so.${major}.${minor}`
fi
;;
esac
# end
|