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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
|
$NetBSD: patch-af,v 1.3 2002/01/09 23:04:56 seb Exp $
--- config/untested/elf-netbsd-cc.orig Sat Jan 5 18:03:08 2002
+++ config/untested/elf-netbsd-cc
@@ -0,0 +1,374 @@
+# This is a shell script. It is sourced by the build scripts in the
+# various subdirectories to gather system-, compiler-, and OS-specific
+# information required for building the Makefiles.
+#
+# Most variables in this script are interpreted as boolean variables and
+# indicate presence or absence of one specific feature. The value "yes"
+# is regarded as "true", all other values (including no value or even
+# non-existence of the variable) are interpreted as "false".
+#
+# Do not forget to quote values that contain shell meta syntax.
+#
+# -----------------------------------------------------------------------
+
+
+# $system should contain the name of this file. It may be used by some
+# of the build scripts to do things that are specific to one single
+# type of system.
+
+system=elf-netbsd-cc
+
+
+# Does the system support the vprintf library function? If not,
+# availability of the (non-portable) _doprnt function is assumed.
+
+vprintf=yes
+
+
+# Does the directory(3) library follow the POSIX conventions (i.e.
+# requires the <dirent.h> include file and uses "struct dirent")?
+# If not, the (obsolete) BSD-style interface with <sys/dir.h> and
+# "struct direct" is assumed.
+
+dirent=yes
+
+
+# Does the system have the random/srandom library functions? If not,
+# rand/srand will be used instead.
+
+random=yes
+
+
+# Does the system have the index library function? If not, strchr
+# will be used.
+
+index=yes
+
+
+# Does the system have the bcopy, bzero, and bcmp library functions?
+# If not, memcpy/memset/memcmp will be used.
+
+bstring=no
+
+
+# Does using the access system call require <unistd.h> to be included?
+# (Look into the manual page for access if in doubt.)
+
+include_unistd_h=yes
+
+
+# If the FIONREAD ioctl command is defined, which file must be included?
+
+fionread_include='<sys/ioctl.h>'
+
+
+# What is the name of the a.out include file?
+
+aout_h='<a.out.h>'
+
+
+# The following variables control how certain system limits are obtained
+# during runtime.
+#
+# If getdtablesize() is available to determine the maximum number of open
+# files per process, set getdtablesize=yes.
+# Alternatively, if POSIX-style sysconf() can be called with _SC_OPEN_MAX,
+# set sysconf_open_max=yes.
+# If neither is set to "yes", an educated guess will be made.
+
+getdtablesize=yes
+sysconf_open_max=yes
+
+# If POSIX-style pathconf() can be invoked with _PC_PATH_MAX to determine
+# the maximum pathname length, set pathconf_path_max=yes.
+
+pathconf_path_max=yes
+
+# If the system page size can be determined by calling getpagesize()
+# set getpagesize=yes.
+# Alternatively, if sysconf() can be invoked with _SC_PAGESIZE, set
+# sysconf_pagesize=yes.
+# These two variables are only required if the generational garbage
+# collector is used.
+
+getpagesize=yes
+sysconf_pagesize=no
+
+
+# Set reliable_signals=bsd if your system supports BSD-style reliable
+# signals (has sigblock and related functions); set reliable_signals=posix
+# for POSIX-style signals (sigprocmask, sigsets); otherwise old V7/SysV
+# signal semantics are assumed.
+
+reliable_signals=bsd
+
+
+# To support dynamic loading of object files and "dump", the system's
+# a.out format has to be known. Choose one of the following:
+#
+# coff ecoff xcoff elf macho hp9k convex
+#
+# Other values of "aout_format" are interpreted as BSD-style a.out format.
+
+aout_format=elf
+
+
+# Which mechanism should be used to dynamically load object files?
+# Possible values currently are:
+#
+# ld BSD-style incremental loading based on ld -A
+# rld NeXT-style rld_load()
+# shl HP-UX shl_load()
+# dl SysVR4/SunOS5 dlopen()
+#
+# Leave load_obj empty if dynamic loading is not supported.
+
+load_obj=dl
+
+
+ # The following variables are only relevant if load_obj is set.
+
+ # Linker options to produce a shared object from a .o file.
+ # Only used if load_obj=dl.
+
+ ldflags_shared='-Bshareable'
+
+ # The libraries against which dynamically loaded files are resolved
+ # at the time they are loaded.
+
+ load_libraries=
+
+ # Does the ld-option -x really do what the manual says it does (i.e.
+ # omit local symbols), or does it somehow render the resulting object
+ # file unsuitable for dynamic loading? If in doubt, leave it out
+ # (which may result in somewhat larger object files).
+
+ incremental_ldflags=-x
+
+ # Systems with "aout_format=ecoff" may require a call to the cacheflush
+ # system call after an object file has been loaded. Which include file
+ # has to be included in this case?
+
+ cachectl_h=unused
+
+ # Is the ANSI-C atexit function supported to register an exit handler?
+ # If not, the exit library function will be redefined and will end in
+ # a call to _exit.
+
+ atexit=yes
+
+
+# Do the names of external functions in the symbol table always begin
+# with a special character (such as underline)? If so, syms_begin_with
+# should hold this character, otherwise leave it empty.
+
+syms_begin_with=
+
+
+# The symbol prefixes of extension initialization and finalization
+# functions (without the initial $syms_begin_with). Do not change
+# these unless the compiler or linker restricts the length of symbols!
+
+init_prefix=elk_init_
+finit_prefix=elk_finit_
+
+
+# Is the "dump" function supported?
+
+can_dump=no
+
+
+# The following variables are only relevant if "can_dump=yes".
+
+ # Is the fchmod system call broken or unavailable?
+
+ fchmod_broken=no
+
+ # These four variables are only relevant if the system has the BSD-style
+ # a.out format.
+ # segment_size is the segment size of the system's memory management
+ # unit, i.e. the number to a multiple of which the size of an a.out
+ # segment (e.g. .text) is rounded up.
+ # file_text_start is the file offset at which the text segment starts
+ # in an a.out file.
+ # mem_text_start is the starting address of the text segment in memory.
+ # text_length_adj must be set to "sizeof (struct exec)" if the length of
+ # the text segment stored in the a.out header includes the a.out header
+ # itself.
+
+ segment_size=__LDPGSZ
+ file_text_start='(N_TXTOFF(hdr) + sizeof(struct exec))'
+ mem_text_start='(sizeof(struct exec) + getpagesize())'
+ text_length_adj='(sizeof(struct exec))'
+
+ # Only relevant if "aout_format=coff": the system's pagesize.
+
+ coff_pagesize=
+
+ # Only relevant if "aout_format=hp9k" and "load_obj=shl"
+
+ hp_shared_libraries=yes
+
+ # Print debug messages when dumping
+
+ debug_dump=yes
+
+
+# Is the "termio" terminal interface supported by the system? If not,
+# BSD-style tty handling will be used.
+
+termio=yes
+
+
+# flush_stdio and flush_tty indicate how clear-input/output-port can
+# flush (purge) a FILE pointer and a TTY file descriptor.
+# Possible values of flush_stdio:
+# bsd assume old BSD-style FILE* (with _cnt, _ptr, _base)
+# fpurge use 4.4BSD-style fpurge stdio library function
+# linux use Linux-specific method
+# Possible values of flush_tty:
+# tiocflush use TIOCFLUSH ioctl from <sys/ioctl.h>
+# tcflsh use TCFLSH ioctl from <termio.h>
+# Leave the variable(s) empty if flushing is not supported.
+
+flush_stdio=fpurge
+flush_tty=tiocflush
+
+
+# The interpreter uses the getrlimit function to determine the maximum
+# stack size of the running program. If this function is not supported,
+# set max_stack_size to a (fixed) maximum stack size (in bytes).
+
+max_stack_size=
+
+
+# Is the mprotect system call supported? The generational garbage collector
+# requires mprotect to implement incremental GC. $mprotect is ignored if
+# generational_gc is set to "no" in the site file. Set mprotect=mmap if
+# mprotect is supported, but only for mmap()ed memory.
+
+mprotect=yes
+
+
+# How can a SIGSEGV or SIGBUS signal handler find out the address of
+# the faulting memory reference? This variable is only used if
+# $mprotect is "yes" or "mmap". Possible values are:
+#
+# siginfo handler is called with siginfo_t structure (enabled
+# by a call to sigaction)
+# sigcontext address is in the sigcontext structure (3rd arg, sc_badvaddr)
+# arg4 address is delivered to handler as argument #4
+# aix use an AIX-specific hack to get hold of the bad address
+# hpux use a HP-UX-specific hack
+
+sigsegv_addr=arg4
+
+
+# Does the system support the alloca library function, and does this
+# function actually extend the stack? If in doubt, extract alloca.o
+# from the C library and check if it contains the symbols malloc and free.
+# If this is the case, forget it.
+
+use_alloca=yes
+
+
+# Must <alloca.h> be included to use alloca? Is "#pragma alloca" required?
+
+include_alloca_h=no
+pragma_alloca=no
+
+
+# Does the system (or compiler) require certain objects (e.g. doubles)
+# to be aligned at 8-byte boundaries? If not, 4-byte alignment will
+# be assumed.
+
+align_8byte=yes
+
+
+# The C compiler used to compile the source code.
+
+cc=cc
+
+
+# The name of the linker. This is usually just "ld", or /usr/ccs/bin/ld
+# in SVR4-based systems.
+
+ld=ld
+
+
+# The C compiler flags used for all files.
+
+cflags='-O2 -pipe'
+
+
+# Are extra C compiler flags (such as -D_NO_PROTO) required to compile
+# Motif applications?
+
+motif_cflags=
+
+
+# Are extra C compiler flags (such as -G 0) required to compile
+# dynamically loadable files?
+
+obj_cflags='-fPIC -DPIC'
+
+
+# Are extra linker flags (such as -G 0) required to link several object
+# files together to one dynamically loadable file?
+
+obj_ldflags=
+
+
+# The linker flags used to link the interpreter.
+
+ldflags='-lm'
+
+
+# The lint flags.
+
+lintflags='-abxh'
+
+
+# Are function prototypes in the header files required? If prototypes=yes,
+# prototypes are used unconditionally; if prototypes=no, prototypes are
+# not used; otherwise prototypes are only used if the source code is
+# compiled with an ANSI-C- or C++-compiler.
+
+prototypes=yes
+
+
+# Does your C preprocessor support the ANSI-C ## operator, although
+# __STDC__ is not defined?
+
+ansi_cpp=no
+
+
+# The UNIX extension likes to know which of the following system calls,
+# library functions, and include files are supported by the system.
+
+gettimeofday=yes
+ftime=
+vfork=yes
+gethostname=yes
+uname=yes
+mktemp=yes
+tmpnam=yes
+tempnam=yes
+getcwd=yes
+getwd=yes
+rename=yes
+waitpid=yes
+wait3=yes
+wait4=yes
+utime_h=yes
+regcomp=yes
+
+
+# Element type of the gidset argument of getgroups(); typically int
+# or gid_t. Only needed by the UNIX extension.
+
+getgroups_type=gid_t
+
+# which flags - if any - need to be passed to cc so a binary have all its
+# symbols added top the dynamic symbol table
+exportflags=-Wl,--export-dynamic
|