VirtualBox

source: vbox/trunk/src/VBox/Runtime/Makefile.kmk@ 51917

Last change on this file since 51917 was 51868, checked in by vboxsync, 11 years ago

Page hash fixes. Somehow using the wrong algorithm for determining how much to read from disk.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 91.4 KB
Line 
1# $Id: Makefile.kmk 51868 2014-07-04 13:35:22Z vboxsync $
2## @file
3# Sub-Makefile for the IPRT.
4#
5
6#
7# Copyright (C) 2006-2013 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17# The contents of this file may alternatively be used under the terms
18# of the Common Development and Distribution License Version 1.0
19# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20# VirtualBox OSE distribution, in which case the provisions of the
21# CDDL are applicable instead of those of the GPL.
22#
23# You may elect to license modified versions of this file under the
24# terms and conditions of either the GPL or the CDDL or both.
25#
26
27SUB_DEPTH = ../../..
28include $(KBUILD_PATH)/subheader.kmk
29
30ifdef VBOX_ONLY_ADDITIONS
31 #
32 # Only build the additions, sort out the legacy names first.
33 #
34 LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeGuestR3Mini
35 LIBRARIES.win.amd64 += RuntimeGuestR3-x86 RuntimeGuestR3Shared-x86
36 ifdef VBOX_WITH_ADDITION_DRIVERS
37 LIBRARIES += RuntimeGuestR0
38 #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
39 LIBRARIES.win.x86 += RuntimeGuestR0NT4
40 endif
41
42else ifdef VBOX_ONLY_VALIDATIONKIT
43 #
44 # Only build the Validation Kit.
45 #
46 LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeR3 RuntimeR0 RuntimeBldProg
47 LIBRARIES.solaris += RuntimeR0Stub
48 LIBRARIES.win += RuntimeR0Stub
49 LIBRARIES.win.x86 += RuntimeR3VccTricks
50 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
51
52else ifdef VBOX_ONLY_DOCS
53 #
54 # Build docs only - need just regular R3 runtime.
55 #
56 LIBRARIES += RuntimeR3 RuntimeBldProg
57
58else ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
59 #
60 # Build docs only - need just regular R3 runtime.
61 #
62 LIBRARIES += RuntimeBldProg
63 LIBRARIES.solaris += RuntimeR0Stub
64 LIBRARIES.win += RuntimeR0Stub RuntimeRCStub
65 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
66
67else # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_VALIDATIONKIT && !VBOX_ONLY_DOCS
68
69 #
70 # Normal build.
71 #
72 ifndef VBOX_ONLY_EXTPACKS
73 include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
74 endif
75 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
76
77 BLDPROGS += uniread
78 LIBRARIES += RuntimeR3 RuntimeBldProg RuntimeR0 RuntimeEFCPP RuntimeR3NoCRTGCC
79 LIBRARIES.solaris += RuntimeR0Stub
80 LIBRARIES.win += RuntimeR0Stub
81 ifdef VBOX_WITH_RAW_MODE
82 LIBRARIES += RuntimeRC
83 LIBRARIES.win += RuntimeRCStub
84 endif
85 ifdef VBOX_WITH_VBOXDRV
86 LIBRARIES += RuntimeR0Drv
87 endif
88 ifdef VBOX_WITH_ADDITIONS
89 LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeGuestR3Mini
90 LIBRARIES.win.amd64 += RuntimeGuestR3-x86 RuntimeGuestR3Shared-x86
91 ifdef VBOX_WITH_ADDITION_DRIVERS
92 LIBRARIES += RuntimeGuestR0
93 endif
94 #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
95 LIBRARIES.win.x86 += RuntimeGuestR0NT4
96 endif # VBOX_WITH_ADDITIONS
97 LIBRARIES.win.x86 += RuntimeR3VccTricks
98 DLLS += VBoxRT
99 ifdef VBOX_WITH_32_ON_64_MAIN_API
100 DLLS += VBoxRT-x86
101 endif
102endif
103
104
105# Always build the ntdll import libraries on windows.
106LIBRARIES.win += RuntimeR3NtDll-x86
107if1of (amd64, $(KBUILD_TARGET_ARCH) $(KBUILD_HOST_ARCH))
108 LIBRARIES.win += RuntimeR3NtDll-amd64
109endif
110
111
112# Always build the import library.
113IMPORT_LIBS += VBoxRTImp
114
115
116# Where the generated stuff goes.
117IPRT_OUT_DIR := $(PATH_TARGET)/Runtime
118BLDDIRS += $(IPRT_OUT_DIR)
119OTHER_CLEAN += \
120 $(IPRT_OUT_DIR)/errmsgdata.h \
121 $(IPRT_OUT_DIR)/errmsgcomdata.h \
122 $(IPRT_OUT_DIR)/errmsgvboxcomdata.h \
123 $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts \
124 $(IPRT_OUT_DIR)/Doxyfile.iprt \
125 $(IPRT_OUT_DIR)/Doxyfile.iprt.dep \
126 $(IPRT_OUT_DIR)/docs.iprt
127
128
129#
130# Globals
131#
132VBOX_PATH_RUNTIME_SRC := $(PATH_SUB_CURRENT)
133
134
135#
136# Set the defines that buildconfig.cpp needs. Its used by several targets.
137#
138common/misc/buildconfig.cpp_DEFS = \
139 IPRT_BLDCFG_SCM_REV=$(VBOX_SVN_REV) \
140 IPRT_BLDCFG_VERSION_STRING=\"$(VBOX_VERSION_STRING)\" \
141 IPRT_BLDCFG_VERSION_MAJOR=$(VBOX_VERSION_MAJOR) \
142 IPRT_BLDCFG_VERSION_MINOR=$(VBOX_VERSION_MINOR) \
143 IPRT_BLDCFG_VERSION_BUILD=$(VBOX_VERSION_BUILD) \
144 IPRT_BLDCFG_TARGET=\"$(KBUILD_TARGET)\" \
145 IPRT_BLDCFG_TARGET_ARCH=\"$(KBUILD_TARGET_ARCH)\" \
146 IPRT_BLDCFG_TYPE=\"$(KBUILD_TYPE)\"
147
148#
149# Unicode Specification reader used to regenerate unidata-*.cpp.
150#
151uniread_TEMPLATE = VBoxBldProg
152uniread_SOURCES = common/string/uniread.cpp
153uniread_INCS = include
154
155#
156# Win64 assembly sources.
157#
158RuntimeWin64ASM_SOURCES = \
159 win/amd64/ASMAtomicBitClear.asm \
160 win/amd64/ASMAtomicBitTestAndToggle.asm \
161 win/amd64/ASMAtomicBitToggle.asm \
162 win/amd64/ASMAtomicReadU64.asm \
163 win/amd64/ASMAtomicXchgU16.asm \
164 win/amd64/ASMAtomicXchgU8.asm \
165 win/amd64/ASMBitFirstClear.asm \
166 win/amd64/ASMBitFirstSet.asm \
167 win/amd64/ASMGetCS.asm \
168 win/amd64/ASMGetDS.asm \
169 win/amd64/ASMGetES.asm \
170 win/amd64/ASMGetFlags.asm \
171 win/amd64/ASMGetFS.asm \
172 win/amd64/ASMGetGS.asm \
173 win/amd64/ASMGetSS.asm \
174 win/amd64/ASMProbeReadByte.asm \
175 win/amd64/ASMSetFlags.asm \
176 win/amd64/ASMGetDR0.asm \
177 win/amd64/ASMGetDR1.asm \
178 win/amd64/ASMGetDR2.asm \
179 win/amd64/ASMGetDR3.asm \
180 win/amd64/ASMGetDR6.asm \
181 win/amd64/ASMGetDR7.asm \
182 common/asm/ASMAtomicCmpXchgU8.asm \
183 common/asm/ASMMultU64ByU32DivByU32.asm \
184 common/asm/ASMCpuId_Idx_ECX.asm \
185 common/asm/ASMNopPause.asm \
186 common/asm/ASMGetIDTR.asm \
187 common/asm/ASMSetIDTR.asm \
188 common/asm/ASMGetGDTR.asm \
189 common/asm/ASMSetGDTR.asm \
190 common/asm/ASMGetLDTR.asm \
191 common/asm/ASMGetSegAttr.asm \
192 common/asm/ASMGetTR.asm
193
194#
195# Win32 assembly sources.
196#
197RuntimeWin32ASM_SOURCES = \
198 common/asm/ASMAtomicCmpXchgU8.asm \
199 common/asm/ASMMultU64ByU32DivByU32.asm \
200 common/asm/ASMCpuId_Idx_ECX.asm \
201 common/asm/ASMGetSegAttr.asm
202
203#
204# NoCRT sources (minus math stuff).
205#
206if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
207RuntimeNoCrt_SOURCES = \
208 common/misc/setjmp.asm \
209 common/string/memchr.asm \
210 common/string/memcmp.asm \
211 common/string/memcpy.asm \
212 common/string/mempcpy.asm \
213 common/string/memmove.asm \
214 common/string/memset.asm \
215 common/string/strchr.asm \
216 common/string/strcpy.asm \
217 common/string/strncpy.asm \
218 common/string/strcmp.asm \
219 common/string/strlen.asm
220endif
221
222
223#
224# RuntimeR3 - Static Runtime for Ring-3 executables.
225#
226RuntimeR3_TEMPLATE = VBoxR3Static
227RuntimeR3_SDKS = VBOX_OPENSSL VBOX_LIBXML2
228RuntimeR3_SDKS.win = $(VBOX_WINPSDK) $(VBOX_WINDDK)
229RuntimeR3_DEFS = \
230 IN_RT_R3 \
231 IN_SUP_R3 \
232 LDR_WITH_NATIVE \
233 LDR_WITH_ELF32 \
234 LDR_WITH_PE \
235 RT_WITH_VBOX \
236 RT_NO_GIP \
237 RT_WITHOUT_NOCRT_WRAPPERS \
238 IPRT_WITH_OPENSSL
239#RuntimeR3_DEFS += RTMEM_WRAP_TO_EF_APIS
240ifdef IPRT_WITH_KSTUFF
241 RuntimeR3_DEFS += LDR_WITH_KLDR
242endif
243ifdef IPRT_WITH_LZJB
244 RuntimeR3_DEFS += RTZIP_USE_LZJB
245endif
246ifdef IPRT_WITH_LZO
247 RuntimeR3_DEFS += RTZIP_USE_LZO
248endif
249ifn1of ($(KBUILD_TARGET), win)
250 RuntimeR3_DEFS += RT_WITH_ICONV_CACHE
251endif
252ifdef IPRT_WITH_FUTEX_BASED_SEMS
253 RuntimeR3_DEFS.linux += IPRT_WITH_FUTEX_BASED_SEMS
254endif
255RuntimeR3_INCS = \
256 include \
257 $(SDK_VBOX_ZLIB_INCS)
258RuntimeR3_INCS += \
259 $(PATH_ROOT)/src/libs/liblzf-3.4
260ifdef IPRT_WITH_KSTUFF
261 RuntimeR3_INCS += \
262 $(PATH_ROOT)/src/libs/kStuff/kStuff/include
263endif
264
265# RuntimeR3_INCS.solaris = \
266# /usr/include
267
268RuntimeR3_SOURCES = \
269 common/alloc/alloc.cpp \
270 common/alloc/heapsimple.cpp \
271 common/alloc/heapoffset.cpp \
272 common/alloc/memcache.cpp \
273 common/alloc/memtracker.cpp \
274 common/asn1/asn1-basics.cpp \
275 common/asn1/asn1-cursor.cpp \
276 common/asn1/asn1-default-allocator.cpp \
277 common/asn1/asn1-dump.cpp \
278 common/asn1/asn1-encode.cpp \
279 common/asn1/asn1-ut-bitstring.cpp \
280 common/asn1/asn1-ut-bitstring-decode.cpp \
281 common/asn1/asn1-ut-boolean.cpp \
282 common/asn1/asn1-ut-boolean-decode.cpp \
283 common/asn1/asn1-ut-core.cpp \
284 common/asn1/asn1-ut-core-decode.cpp \
285 common/asn1/asn1-ut-dyntype.cpp \
286 common/asn1/asn1-ut-dyntype-decode.cpp \
287 common/asn1/asn1-ut-integer.cpp \
288 common/asn1/asn1-ut-integer-decode.cpp \
289 common/asn1/asn1-ut-null.cpp \
290 common/asn1/asn1-ut-null-decode.cpp \
291 common/asn1/asn1-ut-objid.cpp \
292 common/asn1/asn1-ut-objid-decode.cpp \
293 common/asn1/asn1-ut-octetstring.cpp \
294 common/asn1/asn1-ut-octetstring-decode.cpp \
295 common/asn1/asn1-ut-string.cpp \
296 common/asn1/asn1-ut-string-decode.cpp \
297 common/asn1/asn1-ut-time.cpp \
298 common/asn1/asn1-ut-time-decode.cpp \
299 common/checksum/adler32.cpp \
300 common/checksum/crc32.cpp \
301 common/checksum/crc32c.cpp \
302 common/checksum/crc64.cpp \
303 common/checksum/alt-md2.cpp \
304 common/checksum/alt-md5.cpp \
305 common/checksum/alt-sha1.cpp \
306 common/checksum/alt-sha256.cpp \
307 common/checksum/alt-sha512.cpp \
308 common/checksum/md2str.cpp \
309 common/checksum/md5str.cpp \
310 common/checksum/ipv4.cpp \
311 common/checksum/ipv6.cpp \
312 common/checksum/manifest.cpp \
313 common/checksum/manifest2.cpp \
314 common/checksum/manifest3.cpp \
315 common/checksum/manifest-file.cpp \
316 common/checksum/RTSha1Digest.cpp \
317 common/checksum/RTSha256Digest.cpp \
318 common/checksum/sha1str.cpp \
319 common/checksum/sha224str.cpp \
320 common/checksum/sha256str.cpp \
321 common/checksum/sha384str.cpp \
322 common/checksum/sha512str.cpp \
323 common/checksum/sha512t224str.cpp \
324 common/checksum/sha512t256str.cpp \
325 common/checksum/x509.cpp \
326 common/crypto/digest-core.cpp \
327 common/crypto/digest-builtin.cpp \
328 common/crypto/iprt-openssl.cpp \
329 common/crypto/rsa-asn1-decoder.cpp \
330 common/crypto/rsa-core.cpp \
331 common/crypto/rsa-init.cpp \
332 common/crypto/rsa-sanity.cpp \
333 common/crypto/pemfile.cpp \
334 common/crypto/pkcs7-asn1-decoder.cpp \
335 common/crypto/pkcs7-core.cpp \
336 common/crypto/pkcs7-init.cpp \
337 common/crypto/pkcs7-sanity.cpp \
338 common/crypto/pkcs7-verify.cpp \
339 common/crypto/pkix-signature-builtin.cpp \
340 common/crypto/pkix-signature-core.cpp \
341 common/crypto/pkix-signature-rsa.cpp \
342 common/crypto/pkix-util.cpp \
343 common/crypto/pkix-verify.cpp \
344 common/crypto/spc-asn1-decoder.cpp \
345 common/crypto/spc-core.cpp \
346 common/crypto/spc-init.cpp \
347 common/crypto/spc-sanity.cpp \
348 common/crypto/x509-asn1-decoder.cpp \
349 common/crypto/x509-certpaths.cpp \
350 common/crypto/x509-core.cpp \
351 common/crypto/x509-file.cpp \
352 common/crypto/x509-init.cpp \
353 common/crypto/x509-sanity.cpp \
354 common/crypto/x509-verify.cpp \
355 common/crypto/taf-asn1-decoder.cpp \
356 common/crypto/taf-core.cpp \
357 common/crypto/taf-init.cpp \
358 common/crypto/taf-sanity.cpp \
359 common/crypto/store.cpp \
360 common/crypto/store-inmem.cpp \
361 common/crypto/RTCrStoreCertAddFromFile.cpp \
362 common/dbg/dbg.cpp \
363 common/dbg/dbgas.cpp \
364 common/dbg/dbgcfg.cpp \
365 common/dbg/dbgmod.cpp \
366 common/dbg/dbgmodldr.cpp \
367 common/dbg/dbgmodcontainer.cpp \
368 common/dbg/dbgmoddeferred.cpp \
369 common/dbg/dbgmodexports.cpp \
370 common/dbg/dbgmodcodeview.cpp \
371 common/dbg/dbgmoddwarf.cpp \
372 common/dbg/dbgmodnm.cpp \
373 common/dvm/dvm.cpp \
374 common/dvm/dvmbsdlabel.cpp \
375 common/dvm/dvmgpt.cpp \
376 common/dvm/dvmmbr.cpp \
377 common/dvm/dvmvfs.cpp \
378 common/err/errinfo.cpp \
379 common/err/errinfo-alloc.cpp \
380 common/err/errmsg.cpp \
381 common/err/RTErrConvertFromErrno.cpp \
382 common/err/RTErrConvertToErrno.cpp \
383 common/filesystem/filesystem.cpp \
384 common/filesystem/filesystemext.cpp \
385 common/ldr/ldr.cpp \
386 common/ldr/ldrELF.cpp \
387 common/ldr/ldrEx.cpp \
388 common/ldr/ldrFile.cpp \
389 common/ldr/ldrMemory.cpp \
390 common/ldr/ldrNative.cpp \
391 common/ldr/ldrPE.cpp \
392 common/log/log.cpp \
393 common/log/logellipsis.cpp \
394 common/log/logrel.cpp \
395 common/log/logrelellipsis.cpp \
396 common/log/logcom.cpp \
397 common/log/logformat.cpp \
398 common/log/tracebuf.cpp \
399 common/log/tracedefault.cpp \
400 common/math/bignum.cpp \
401 common/misc/RTAssertMsg1Weak.cpp \
402 common/misc/RTAssertMsg2.cpp \
403 common/misc/RTAssertMsg2Add.cpp \
404 common/misc/RTAssertMsg2AddWeak.cpp \
405 common/misc/RTAssertMsg2AddWeakV.cpp \
406 common/misc/RTAssertMsg2Weak.cpp \
407 common/misc/RTAssertMsg2WeakV.cpp \
408 common/misc/RTFileModeToFlags.cpp \
409 common/misc/RTFileOpenF.cpp \
410 common/misc/RTFileOpenV.cpp \
411 common/misc/RTMemWipeThoroughly.cpp \
412 common/misc/assert.cpp \
413 common/misc/buildconfig.cpp \
414 common/misc/cidr.cpp \
415 common/misc/getopt.cpp \
416 common/misc/getoptargv.cpp \
417 common/misc/handle.cpp \
418 common/misc/handletable.cpp \
419 common/misc/handletablectx.cpp \
420 common/misc/handletablesimple.cpp \
421 common/misc/lockvalidator.cpp \
422 common/misc/message.cpp \
423 common/misc/once.cpp \
424 common/misc/req.cpp \
425 common/misc/reqpool.cpp \
426 common/misc/reqqueue.cpp \
427 common/misc/sanity-c.c \
428 common/misc/sanity-cpp.cpp \
429 common/misc/semspingpong.cpp \
430 common/misc/sg.cpp \
431 common/misc/circbuf.cpp \
432 common/misc/thread.cpp \
433 common/misc/term.cpp \
434 common/misc/uri.cpp \
435 common/misc/zero.asm \
436 common/net/netaddrstr2.cpp \
437 common/net/macstr.cpp \
438 common/path/rtPathRootSpecLen.cpp \
439 common/path/rtPathVolumeSpecLen.cpp \
440 common/path/RTPathAbsDup.cpp \
441 common/path/RTPathAbsEx.cpp \
442 common/path/RTPathAbsExDup.cpp \
443 common/path/RTPathAppend.cpp \
444 common/path/RTPathAppendEx.cpp \
445 common/path/RTPathCalcRelative.cpp \
446 common/path/RTPathChangeToDosSlashes.cpp \
447 common/path/RTPathChangeToUnixSlashes.cpp \
448 common/path/RTPathCopyComponents.cpp \
449 common/path/RTPathCountComponents.cpp \
450 common/path/RTPathExt.cpp \
451 common/path/RTPathFilename.cpp \
452 common/path/RTPathHasExt.cpp \
453 common/path/RTPathHasPath.cpp \
454 common/path/RTPathJoin.cpp \
455 common/path/RTPathJoinA.cpp \
456 common/path/RTPathJoinEx.cpp \
457 common/path/RTPathParse.cpp \
458 common/path/RTPathParsedReassemble.cpp \
459 common/path/RTPathParseSimple.cpp \
460 common/path/RTPathRealDup.cpp \
461 common/path/RTPathRmCmd.cpp \
462 common/path/RTPathSplit.cpp \
463 common/path/RTPathSplitA.cpp \
464 common/path/RTPathSplitReassemble.cpp \
465 common/path/RTPathStartsWithRoot.cpp \
466 common/path/RTPathStripExt.cpp \
467 common/path/RTPathStripFilename.cpp \
468 common/path/RTPathStripTrailingSlash.cpp \
469 common/path/RTPathTraverseList.cpp \
470 common/path/comparepaths.cpp \
471 common/rand/rand.cpp \
472 common/rand/randadv.cpp \
473 common/rand/randparkmiller.cpp \
474 common/sort/RTSortIsSorted.cpp \
475 common/sort/RTSortApvIsSorted.cpp \
476 common/sort/shellsort.cpp \
477 common/string/RTStrCat.cpp \
478 common/string/RTStrCatEx.cpp \
479 common/string/RTStrCatP.cpp \
480 common/string/RTStrCatPEx.cpp \
481 common/string/RTStrCmp.cpp \
482 common/string/RTStrCopy.cpp \
483 common/string/RTStrCopyEx.cpp \
484 common/string/RTStrCopyP.cpp \
485 common/string/RTStrCopyPEx.cpp \
486 common/string/RTStrNCmp.cpp \
487 common/string/RTStrNLen.cpp \
488 common/string/RTStrNLenEx.cpp \
489 common/string/RTStrPrintHexBytes.cpp \
490 common/string/RTStrStr.cpp \
491 common/string/RTUtf16Copy.cpp \
492 common/string/RTUtf16CopyAscii.cpp \
493 common/string/RTUtf16Cat.cpp \
494 common/string/RTUtf16CatAscii.cpp \
495 common/string/RTUtf16CmpAscii.cpp \
496 common/string/RTUtf16ICmpAscii.cpp \
497 common/string/RTUtf16End.cpp \
498 common/string/RTUtf16NLen.cpp \
499 common/string/RTUtf16NLenEx.cpp \
500 common/string/RTUtf16PrintHexBytes.cpp \
501 common/string/base64.cpp \
502 common/string/simplepattern.cpp \
503 common/string/straprintf.cpp \
504 common/string/strformat.cpp \
505 common/string/strformatnum.cpp \
506 common/string/strformatrt.cpp \
507 common/string/strformattype.cpp \
508 common/string/strhash1.cpp \
509 common/string/stringalloc.cpp \
510 common/string/strprintf.cpp \
511 common/string/strcache.cpp \
512 common/string/strspace.cpp \
513 common/string/strstrip.cpp \
514 common/string/strtonum.cpp \
515 common/string/strversion.cpp \
516 common/string/uni.cpp \
517 common/string/unidata-flags.cpp \
518 common/string/unidata-lower.cpp \
519 common/string/unidata-upper.cpp \
520 common/string/utf-16.cpp \
521 common/string/utf-16-case.cpp \
522 common/string/utf-16-latin-1.cpp \
523 common/string/utf-8.cpp \
524 common/string/utf-8-case.cpp \
525 common/string/utf-8-case2.cpp \
526 common/string/ministring.cpp \
527 common/table/avlgcptr.cpp \
528 common/table/avlhcphys.cpp \
529 common/table/avlgcphys.cpp \
530 common/table/avllu32.cpp \
531 common/table/avlou32.cpp \
532 common/table/avlogcphys.cpp \
533 common/table/avlogcptr.cpp \
534 common/table/avlohcphys.cpp \
535 common/table/avloioport.cpp \
536 common/table/avlpv.cpp \
537 common/table/avlrgcptr.cpp \
538 common/table/avlrogcphys.cpp \
539 common/table/avlrogcptr.cpp \
540 common/table/avlroioport.cpp \
541 common/table/avlroogcptr.cpp \
542 common/table/avlrpv.cpp \
543 common/table/avlruintptr.cpp \
544 common/table/avlrfoff.cpp \
545 common/table/avlru64.cpp \
546 common/table/avlu32.cpp \
547 common/table/avluintptr.cpp \
548 common/table/avlul.cpp \
549 common/table/table.cpp \
550 common/time/time.cpp \
551 common/time/timeprog.cpp \
552 common/time/timesup.cpp \
553 common/vfs/vfsbase.cpp \
554 common/vfs/vfschain.cpp \
555 common/vfs/vfsiosmisc.cpp \
556 common/vfs/vfsmemory.cpp \
557 common/vfs/vfsmisc.cpp \
558 common/vfs/vfsstdfile.cpp \
559 common/zip/tar.cpp \
560 common/zip/tarcmd.cpp \
561 common/zip/unzipcmd.cpp \
562 common/zip/tarvfs.cpp \
563 common/zip/gzipvfs.cpp \
564 common/zip/pkzip.cpp \
565 common/zip/pkzipvfs.cpp \
566 common/zip/zip.cpp \
567 generic/createtemp-generic.cpp \
568 generic/critsect-generic.cpp \
569 generic/critsectrw-generic.cpp \
570 generic/env-generic.cpp \
571 generic/RTDirCreateUniqueNumbered-generic.cpp \
572 generic/RTEnvDupEx-generic.cpp \
573 generic/RTFileCopy-generic.cpp \
574 generic/RTFileQuerySize-generic.cpp \
575 generic/RTFileReadAll-generic.cpp \
576 generic/RTFileReadAllEx-generic.cpp \
577 generic/RTFileReadAllByHandle-generic.cpp \
578 generic/RTFileReadAllByHandleEx-generic.cpp \
579 generic/RTFileReadAllFree-generic.cpp \
580 generic/RTLogWriteStdErr-generic.cpp \
581 generic/RTLogWriteStdOut-generic.cpp \
582 generic/RTLogWriteUser-generic.cpp \
583 generic/RTPathIsSame-generic.cpp \
584 generic/RTProcessQueryUsernameA-generic.cpp \
585 generic/RTTimerLRCreate-generic.cpp \
586 generic/mempool-generic.cpp \
587 generic/memsafer-generic.cpp \
588 generic/semfastmutex-generic.cpp \
589 generic/semxroads-generic.cpp \
590 generic/spinlock-generic.cpp \
591 generic/timerlr-generic.cpp \
592 r3/alloc-ef.cpp \
593 r3/alloc.cpp \
594 r3/allocex.cpp \
595 r3/dir.cpp \
596 r3/dir2.cpp \
597 r3/fileio.cpp \
598 r3/fs.cpp \
599 r3/init.cpp \
600 r3/isofs.cpp \
601 r3/path.cpp \
602 r3/poll.cpp \
603 r3/process.cpp \
604 r3/socket.cpp \
605 r3/stream.cpp \
606 r3/test.cpp \
607 r3/testi.cpp \
608 r3/tcp.cpp \
609 r3/udp.cpp \
610 r3/generic/semspinmutex-r3-generic.cpp \
611 r3/xml.cpp \
612 common/zip/xarvfs.cpp
613
614
615#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
616# RuntimeR3_SOURCES += common/time/timesupA.asm
617#else
618 RuntimeR3_SOURCES += common/time/timesupref.cpp
619#endif
620
621RuntimeR3_SOURCES.x86 += \
622 generic/RTMpGetDescription-generic.cpp
623RuntimeR3_SOURCES.amd64 += \
624 generic/RTMpGetDescription-generic.cpp
625RuntimeR3_SOURCES.sparc32 += \
626 generic/RTMpGetDescription-generic-stub.cpp \
627 common/asm/asm-fake.cpp
628RuntimeR3_SOURCES.sparc64 += \
629 generic/RTMpGetDescription-generic-stub.cpp \
630 common/asm/asm-fake.cpp
631
632ifdef IPRT_WITH_LZJB
633 RuntimeR3_SOURCES += common/misc/lzjb.c
634endif
635
636# AMD64 / x86 assembly code.
637RuntimeR3_SOURCES.x86 += \
638 common/asm/ASMCpuIdExSlow.asm \
639 common/asm/ASMAtomicUoAndU64.asm \
640 common/asm/ASMAtomicUoAndU32.asm \
641 common/asm/ASMAtomicUoOrU64.asm \
642 common/asm/ASMAtomicUoOrU32.asm \
643 common/asm/ASMRdMsrEx.asm \
644 common/asm/ASMWrMsrEx.asm
645RuntimeR3_SOURCES.amd64 += \
646 common/asm/ASMCpuIdExSlow.asm \
647 common/asm/ASMAtomicUoAndU64.asm \
648 common/asm/ASMAtomicUoAndU32.asm \
649 common/asm/ASMAtomicUoOrU64.asm \
650 common/asm/ASMAtomicUoOrU32.asm \
651 common/asm/ASMRdMsrEx.asm \
652 common/asm/ASMWrMsrEx.asm
653
654# Some versions of GCC might require this.
655RuntimeR3_SOURCES.x86 += \
656 common/asm/ASMAtomicXchgU64.asm \
657 common/asm/ASMAtomicCmpXchgU64.asm \
658 common/asm/ASMAtomicCmpXchgExU64.asm \
659 common/asm/ASMAtomicReadU64.asm \
660 common/asm/ASMAtomicUoReadU64.asm
661
662
663ifdef IPRT_WITH_KSTUFF
664 RuntimeR3_SOURCES += \
665 common/ldr/ldrkStuff.cpp
666endif
667
668# VBox specific stuff.
669RuntimeR3_SOURCES += \
670 VBox/RTAssertShouldPanic-vbox.cpp \
671 VBox/log-vbox.cpp
672ifneq ($(KBUILD_TARGET),win)
673RuntimeR3_SOURCES += \
674 common/err/errmsgxpcom.cpp
675endif
676if1of ($(KBUILD_TARGET),freebsd linux netbsd openbsd solaris)
677RuntimeR3_SOURCES += \
678 $(if $(VBOX_WITH_DBUS),VBox/dbus.cpp,)
679endif
680
681VBOX_WITH_NT_DIRENUM = 1
682RuntimeR3_SOURCES.win = \
683 common/dbg/dbgmoddbghelp.cpp \
684 generic/cdrom-generic.cpp \
685 generic/RTDirExists-generic.cpp \
686 generic/RTDirQueryInfo-generic.cpp \
687 generic/RTDirSetTimes-generic.cpp \
688 generic/RTFileExists-generic.cpp \
689 generic/RTMpGetCurFrequency-generic.cpp \
690 generic/RTMpGetMaxFrequency-generic.cpp \
691 generic/RTRandAdvCreateSystemFaster-generic.cpp \
692 generic/RTRandAdvCreateSystemTruer-generic.cpp \
693 generic/RTSemEventWait-generic.cpp \
694 generic/RTSemEventMultiWait-2-ex-generic.cpp \
695 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
696 generic/RTSemMutexRequest-generic.cpp \
697 generic/RTSemMutexRequestDebug-generic.cpp \
698 generic/RTThreadSetAffinityToCpu-generic.cpp \
699 generic/mppresent-generic.cpp \
700 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
701 generic/uuid-generic.cpp \
702 generic/RTProcDaemonize-generic.cpp \
703 generic/RTProcIsRunningByName-generic.cpp \
704 generic/RTThreadGetNativeState-generic.cpp \
705 nt/RTErrConvertFromNtStatus.cpp \
706 r3/nt/fs-nt.cpp \
707 r3/nt/pathint-nt.cpp \
708 r3/nt/RTProcQueryParent-r3-nt.cpp \
709 r3/win/env-win.cpp \
710 r3/win/RTHandleGetStandard-win.cpp \
711 r3/win/RTSystemQueryOSInfo-win.cpp \
712 r3/win/RTSystemShutdown-win.cpp \
713 r3/win/RTSystemQueryDmiString-win.cpp \
714 r3/win/RTSystemQueryTotalRam-win.cpp \
715 r3/win/alloc-win.cpp \
716 r3/win/allocex-win.cpp \
717 r3/win/dir-win.cpp \
718 $(if-expr defined(VBOX_WITH_NT_DIRENUM),r3/nt/direnum-r3-nt.cpp,r3/win/direnum-win.cpp) \
719 r3/win/errvars-win.cpp \
720 r3/win/fileio-win.cpp \
721 r3/win/init-win.cpp \
722 r3/win/ldrNative-win.cpp \
723 r3/win/localipc-win.cpp \
724 r3/win/mp-win.cpp \
725 r3/win/path-win.cpp \
726 r3/win/pipe-win.cpp \
727 r3/win/process-win.cpp \
728 r3/win/RTLogWriteDebugger-win.cpp \
729 r3/win/rtProcInitExePath-win.cpp \
730 r3/win/sched-win.cpp \
731 r3/win/semevent-win.cpp \
732 r3/win/semeventmulti-win.cpp \
733 r3/win/semmutex-win.cpp \
734 r3/win/symlink-win.cpp \
735 r3/win/rtFileNativeSetAttributes-win.cpp \
736 r3/win/rtmemlocked-win.cpp \
737 r3/win/thread-win.cpp \
738 r3/win/thread2-win.cpp \
739 r3/win/time-win.cpp \
740 r3/win/timer-win.cpp \
741 r3/win/tls-win.cpp \
742 r3/win/utf16locale-win.cpp \
743 r3/win/utf8-win.cpp \
744 r3/win/RTUuidCreate-win.cpp \
745 win/errmsgwin.cpp \
746 win/RTErrConvertFromWin32.cpp \
747 common/string/mempcpy.asm
748
749RuntimeR3_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
750RuntimeR3_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES)
751
752RuntimeR3_SOURCES.linux = \
753 generic/cdrom-generic.cpp \
754 generic/RTDirQueryInfo-generic.cpp \
755 generic/RTDirSetTimes-generic.cpp \
756 generic/RTFileMove-generic.cpp \
757 generic/RTLogWriteDebugger-generic.cpp \
758 generic/RTProcDaemonize-generic.cpp \
759 generic/RTSemEventMultiWait-2-ex-generic.cpp \
760 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
761 generic/RTTimeLocalNow-generic.cpp \
762 generic/RTTimerCreate-generic.cpp \
763 generic/RTThreadSetAffinityToCpu-generic.cpp \
764 generic/RTUuidCreate-generic.cpp \
765 generic/mppresent-generic.cpp \
766 generic/utf16locale-generic.cpp \
767 generic/uuid-generic.cpp \
768 r3/posix/allocex-r3-posix.cpp \
769 r3/linux/RTThreadGetNativeState-linux.cpp \
770 r3/linux/mp-linux.cpp \
771 r3/linux/rtProcInitExePath-linux.cpp \
772 r3/linux/sched-linux.cpp \
773 r3/linux/sysfs.cpp \
774 r3/linux/time-linux.cpp \
775 r3/linux/thread-affinity-linux.cpp \
776 r3/linux/RTProcIsRunningByName-linux.cpp \
777 r3/linux/RTSystemQueryDmiString-linux.cpp \
778 r3/linux/RTSystemShutdown-linux.cpp \
779 r3/posix/RTFileQueryFsSizes-posix.cpp \
780 r3/posix/RTHandleGetStandard-posix.cpp \
781 r3/posix/RTMemProtect-posix.cpp \
782 r3/posix/RTPathUserHome-posix.cpp \
783 r3/posix/RTSystemQueryOSInfo-posix.cpp \
784 r3/linux/systemmem-linux.cpp \
785 r3/posix/RTTimeNow-posix.cpp \
786 r3/posix/RTTimeSet-posix.cpp \
787 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
788 r3/posix/rtmemlocked-posix.cpp \
789 r3/posix/dir-posix.cpp \
790 r3/posix/env-posix.cpp \
791 r3/posix/errvars-posix.cpp \
792 r3/posix/fileio-posix.cpp \
793 r3/posix/fileio2-posix.cpp \
794 r3/posix/filelock-posix.cpp \
795 r3/posix/fs-posix.cpp \
796 r3/posix/fs2-posix.cpp \
797 r3/posix/fs3-posix.cpp \
798 r3/posix/ldrNative-posix.cpp \
799 r3/posix/path-posix.cpp \
800 r3/posix/path2-posix.cpp \
801 r3/posix/pathhost-posix.cpp \
802 r3/posix/RTPathUserDocuments-posix.cpp \
803 r3/posix/pipe-posix.cpp \
804 r3/posix/process-posix.cpp \
805 r3/posix/process-creation-posix.cpp \
806 r3/posix/rand-posix.cpp \
807 r3/posix/semrw-posix.cpp \
808 r3/posix/symlink-posix.cpp \
809 r3/posix/thread-posix.cpp \
810 r3/posix/thread2-posix.cpp \
811 r3/posix/timelocal-posix.cpp \
812 r3/posix/timer-posix.cpp \
813 r3/posix/tls-posix.cpp \
814 r3/posix/utf8-posix.cpp
815ifdef IPRT_WITH_FUTEX_BASED_SEMS
816 RuntimeR3_SOURCES.linux += \
817 r3/linux/semevent-linux.cpp \
818 r3/linux/semeventmulti-linux.cpp \
819 r3/linux/semmutex-linux.cpp
820else
821 RuntimeR3_SOURCES.linux.x86 += \
822 r3/posix/semevent-posix.cpp \
823 r3/posix/semeventmulti-posix.cpp \
824 r3/posix/semmutex-posix.cpp
825 RuntimeR3_SOURCES.linux.amd64 += \
826 r3/linux/semevent-linux.cpp \
827 r3/linux/semeventmulti-linux.cpp
828 ifdef RT_NEW_LINUX_MUTEX_CODE
829 RuntimeR3_SOURCES.linux.amd64 += \
830 r3/linux/semmutex-linux.cpp
831 else
832 RuntimeR3_SOURCES.linux.amd64 += \
833 r3/posix/semmutex-posix.cpp
834 endif
835endif
836
837RuntimeR3_SOURCES.os2 = \
838 generic/cdrom-generic.cpp \
839 generic/RTDirQueryInfo-generic.cpp \
840 generic/RTDirSetTimes-generic.cpp \
841 generic/RTFileMove-generic.cpp \
842 generic/RTLogWriteDebugger-generic.cpp \
843 generic/RTProcDaemonize-generic.cpp \
844 generic/RTRandAdvCreateSystemFaster-generic.cpp \
845 generic/RTRandAdvCreateSystemTruer-generic.cpp \
846 generic/RTSystemQueryDmiString-generic.cpp \
847 generic/RTSystemShutdown-generic.cpp \
848 generic/RTTimeLocalNow-generic.cpp \
849 generic/RTTimerCreate-generic.cpp \
850 generic/RTThreadSetAffinityToCpu-generic.cpp \
851 generic/RTUuidCreate-generic.cpp \
852 generic/mppresent-generic.cpp \
853 generic/RTSemEventWait-generic.cpp \
854 generic/RTSemEventMultiWait-generic.cpp \
855 generic/RTSemMutexRequest-generic.cpp \
856 generic/RTSemMutexRequestDebug-generic.cpp \
857 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
858 generic/timer-generic.cpp \
859 generic/utf16locale-generic.cpp \
860 generic/uuid-generic.cpp \
861 generic/RTMpGetCoreCount-generic.cpp \
862 generic/RTMpGetOnlineCoreCount-generic.cpp \
863 generic/RTMpGetCurFrequency-generic.cpp \
864 generic/RTMpGetMaxFrequency-generic.cpp \
865 generic/RTProcIsRunningByName-generic.cpp \
866 generic/RTThreadGetNativeState-generic.cpp \
867 os2/RTErrConvertFromOS2.cpp \
868 r3/generic/allocex-r3-generic.cpp \
869 r3/os2/filelock-os2.cpp \
870 r3/os2/mp-os2.cpp \
871 r3/os2/pipe-os2.cpp \
872 r3/os2/rtProcInitExePath-os2.cpp \
873 r3/os2/sched-os2.cpp \
874 r3/os2/sems-os2.cpp \
875 r3/os2/systemmem-os2.cpp \
876 r3/os2/thread-os2.cpp \
877 r3/os2/time-os2.cpp \
878 r3/posix/RTFileQueryFsSizes-posix.cpp \
879 r3/posix/RTHandleGetStandard-posix.cpp \
880 r3/posix/RTMemProtect-posix.cpp \
881 r3/posix/RTPathUserHome-posix.cpp \
882 r3/posix/RTSystemQueryOSInfo-posix.cpp \
883 r3/posix/RTTimeNow-posix.cpp \
884 r3/posix/RTTimeSet-posix.cpp \
885 r3/posix/dir-posix.cpp \
886 r3/posix/env-posix.cpp \
887 r3/posix/errvars-posix.cpp \
888 r3/posix/fileio-posix.cpp \
889 r3/posix/fileio2-posix.cpp \
890 r3/posix/fs-posix.cpp \
891 r3/posix/fs2-posix.cpp \
892 r3/posix/fs3-posix.cpp \
893 r3/posix/ldrNative-posix.cpp \
894 r3/posix/path-posix.cpp \
895 r3/posix/path2-posix.cpp \
896 r3/posix/pathhost-posix.cpp \
897 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
898 r3/posix/RTPathUserDocuments-posix.cpp \
899 r3/posix/process-posix.cpp \
900 r3/posix/process-creation-posix.cpp \
901 r3/posix/symlink-posix.cpp \
902 r3/posix/timelocal-posix.cpp \
903 r3/posix/utf8-posix.cpp
904
905RuntimeR3_SOURCES.darwin = \
906 darwin/RTErrConvertFromDarwin.cpp \
907 darwin/RTErrConvertFromDarwinCOM.cpp \
908 darwin/RTErrConvertFromDarwinIO.cpp \
909 darwin/RTErrConvertFromDarwinKern.cpp \
910 generic/cdrom-generic.cpp \
911 generic/RTDirQueryInfo-generic.cpp \
912 generic/RTDirSetTimes-generic.cpp \
913 generic/RTFileMove-generic.cpp \
914 generic/RTLogWriteDebugger-generic.cpp \
915 generic/RTProcDaemonize-generic.cpp \
916 generic/RTThreadGetAffinity-stub-generic.cpp \
917 generic/RTThreadSetAffinity-stub-generic.cpp \
918 generic/RTThreadSetAffinityToCpu-generic.cpp \
919 generic/RTTimeLocalNow-generic.cpp \
920 generic/RTTimerCreate-generic.cpp \
921 generic/RTUuidCreate-generic.cpp \
922 generic/mppresent-generic.cpp \
923 generic/RTMpGetOnlineCoreCount-generic.cpp \
924 generic/RTSemEventMultiWait-2-ex-generic.cpp \
925 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
926 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
927 generic/RTSystemShutdown-generic.cpp \
928 generic/timer-generic.cpp \
929 generic/utf16locale-generic.cpp \
930 generic/uuid-generic.cpp\
931 generic/RTProcIsRunningByName-generic.cpp \
932 generic/RTThreadGetNativeState-generic.cpp \
933 r3/darwin/filelock-darwin.cpp \
934 r3/darwin/mp-darwin.cpp \
935 r3/darwin/pathhost-darwin.cpp \
936 r3/darwin/rtProcInitExePath-darwin.cpp \
937 r3/darwin/RTSystemQueryDmiString-darwin.cpp \
938 r3/darwin/sched-darwin.cpp \
939 r3/darwin/systemmem-darwin.cpp \
940 r3/darwin/time-darwin.cpp \
941 r3/darwin/RTPathUserDocuments-darwin.cpp \
942 r3/generic/allocex-r3-generic.cpp \
943 r3/posix/RTFileQueryFsSizes-posix.cpp \
944 r3/posix/RTHandleGetStandard-posix.cpp \
945 r3/posix/RTMemProtect-posix.cpp \
946 r3/posix/RTPathUserHome-posix.cpp \
947 r3/posix/RTSystemQueryOSInfo-posix.cpp \
948 r3/posix/RTTimeSet-posix.cpp \
949 r3/posix/dir-posix.cpp \
950 r3/posix/env-posix.cpp \
951 r3/posix/errvars-posix.cpp \
952 r3/posix/fileio-posix.cpp \
953 r3/posix/fileio2-posix.cpp \
954 r3/posix/fs-posix.cpp \
955 r3/posix/fs2-posix.cpp \
956 r3/posix/fs3-posix.cpp \
957 r3/posix/ldrNative-posix.cpp \
958 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
959 r3/posix/rtmemlocked-posix.cpp \
960 r3/posix/path-posix.cpp \
961 r3/posix/path2-posix.cpp \
962 r3/posix/pipe-posix.cpp \
963 r3/posix/process-posix.cpp \
964 r3/posix/process-creation-posix.cpp \
965 r3/posix/rand-posix.cpp \
966 r3/posix/semevent-posix.cpp \
967 r3/posix/semeventmulti-posix.cpp \
968 r3/posix/semmutex-posix.cpp \
969 r3/posix/symlink-posix.cpp \
970 r3/posix/thread-posix.cpp \
971 r3/posix/thread2-posix.cpp \
972 r3/posix/timelocal-posix.cpp \
973 r3/posix/tls-posix.cpp \
974 r3/posix/utf8-posix.cpp
975
976## @todo Make BSD sched, implement RTMP*.
977RuntimeR3_SOURCES.freebsd = \
978 generic/cdrom-generic.cpp \
979 generic/RTDirQueryInfo-generic.cpp \
980 generic/RTDirSetTimes-generic.cpp \
981 generic/RTFileMove-generic.cpp \
982 generic/RTLogWriteDebugger-generic.cpp \
983 generic/RTSemEventMultiWait-2-ex-generic.cpp \
984 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
985 generic/RTSystemQueryDmiString-generic.cpp \
986 generic/RTSystemShutdown-generic.cpp \
987 generic/RTThreadGetAffinity-stub-generic.cpp \
988 generic/RTThreadSetAffinity-stub-generic.cpp \
989 generic/RTThreadSetAffinityToCpu-generic.cpp \
990 generic/RTTimeLocalNow-generic.cpp \
991 generic/RTTimerCreate-generic.cpp \
992 generic/RTUuidCreate-generic.cpp \
993 generic/mppresent-generic.cpp \
994 generic/sched-generic.cpp \
995 generic/utf16locale-generic.cpp \
996 generic/uuid-generic.cpp \
997 generic/RTMpCpuId-generic.cpp \
998 generic/RTMpGetCoreCount-generic.cpp \
999 generic/RTMpGetOnlineCoreCount-generic.cpp \
1000 generic/RTProcDaemonize-generic.cpp \
1001 generic/RTProcIsRunningByName-generic.cpp \
1002 generic/RTThreadGetNativeState-generic.cpp \
1003 r3/freebsd/mp-freebsd.cpp \
1004 r3/freebsd/rtProcInitExePath-freebsd.cpp \
1005 r3/generic/allocex-r3-generic.cpp \
1006 r3/posix/RTFileQueryFsSizes-posix.cpp \
1007 r3/posix/RTHandleGetStandard-posix.cpp \
1008 r3/posix/RTMemProtect-posix.cpp \
1009 r3/posix/RTPathUserHome-posix.cpp \
1010 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1011 r3/posix/RTSystemQueryTotalRam-posix.cpp \
1012 r3/posix/RTTimeNow-posix.cpp \
1013 r3/posix/RTTimeSet-posix.cpp \
1014 r3/posix/dir-posix.cpp \
1015 r3/posix/env-posix.cpp \
1016 r3/posix/errvars-posix.cpp \
1017 r3/posix/fileio-posix.cpp \
1018 r3/posix/fileio2-posix.cpp \
1019 r3/posix/filelock-posix.cpp \
1020 r3/posix/fs-posix.cpp \
1021 r3/posix/fs2-posix.cpp \
1022 r3/posix/fs3-posix.cpp \
1023 r3/posix/ldrNative-posix.cpp \
1024 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1025 r3/posix/rtmemlocked-posix.cpp \
1026 r3/posix/path-posix.cpp \
1027 r3/posix/path2-posix.cpp \
1028 r3/posix/pathhost-posix.cpp \
1029 r3/posix/RTPathUserDocuments-posix.cpp \
1030 r3/posix/pipe-posix.cpp \
1031 r3/posix/process-posix.cpp \
1032 r3/posix/process-creation-posix.cpp \
1033 r3/posix/rand-posix.cpp \
1034 r3/posix/semevent-posix.cpp \
1035 r3/posix/semeventmulti-posix.cpp \
1036 r3/posix/semmutex-posix.cpp \
1037 r3/posix/semrw-posix.cpp \
1038 r3/posix/symlink-posix.cpp \
1039 r3/posix/thread-posix.cpp \
1040 r3/posix/thread2-posix.cpp \
1041 r3/posix/time-posix.cpp \
1042 r3/posix/timelocal-posix.cpp \
1043 r3/posix/timer-posix.cpp \
1044 r3/posix/tls-posix.cpp \
1045 r3/posix/utf8-posix.cpp
1046
1047RuntimeR3_SOURCES.solaris = \
1048 generic/cdrom-generic.cpp \
1049 generic/RTDirQueryInfo-generic.cpp \
1050 generic/RTDirSetTimes-generic.cpp \
1051 generic/RTFileMove-generic.cpp \
1052 generic/RTLogWriteDebugger-generic.cpp \
1053 generic/RTProcDaemonize-generic.cpp \
1054 generic/RTProcIsRunningByName-generic.cpp \
1055 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1056 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1057 generic/RTThreadSetAffinityToCpu-generic.cpp \
1058 generic/RTTimeLocalNow-generic.cpp \
1059 generic/RTTimerCreate-generic.cpp \
1060 generic/RTUuidCreate-generic.cpp \
1061 generic/sched-generic.cpp \
1062 generic/utf16locale-generic.cpp \
1063 generic/uuid-generic.cpp \
1064 generic/RTThreadGetNativeState-generic.cpp \
1065 r3/generic/allocex-r3-generic.cpp \
1066 r3/posix/RTFileQueryFsSizes-posix.cpp \
1067 r3/posix/RTHandleGetStandard-posix.cpp \
1068 r3/posix/RTMemProtect-posix.cpp \
1069 r3/posix/RTPathUserHome-posix.cpp \
1070 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1071 r3/posix/RTTimeNow-posix.cpp \
1072 r3/posix/RTTimeSet-posix.cpp \
1073 r3/posix/dir-posix.cpp \
1074 r3/posix/env-posix.cpp \
1075 r3/posix/errvars-posix.cpp \
1076 r3/posix/fileio-posix.cpp \
1077 r3/posix/fileio2-posix.cpp \
1078 r3/posix/filelock-posix.cpp \
1079 r3/posix/fs-posix.cpp \
1080 r3/posix/fs2-posix.cpp \
1081 r3/posix/fs3-posix.cpp \
1082 r3/posix/ldrNative-posix.cpp \
1083 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1084 r3/posix/rtmemlocked-posix.cpp \
1085 r3/posix/path-posix.cpp \
1086 r3/posix/path2-posix.cpp \
1087 r3/posix/pathhost-posix.cpp \
1088 r3/posix/RTPathUserDocuments-posix.cpp \
1089 r3/posix/pipe-posix.cpp \
1090 r3/posix/process-posix.cpp \
1091 r3/posix/process-creation-posix.cpp \
1092 r3/posix/rand-posix.cpp \
1093 r3/posix/semevent-posix.cpp \
1094 r3/posix/semeventmulti-posix.cpp \
1095 r3/posix/semmutex-posix.cpp \
1096 r3/posix/semrw-posix.cpp \
1097 r3/posix/symlink-posix.cpp \
1098 r3/posix/thread-posix.cpp \
1099 r3/posix/thread2-posix.cpp \
1100 r3/posix/time-posix.cpp \
1101 r3/posix/timelocal-posix.cpp \
1102 r3/posix/timer-posix.cpp \
1103 r3/posix/tls-posix.cpp \
1104 r3/posix/utf8-posix.cpp \
1105 r3/solaris/systemmem-solaris.cpp \
1106 r3/solaris/mp-solaris.cpp \
1107 r3/solaris/rtProcInitExePath-solaris.cpp \
1108 r3/solaris/RTSystemShutdown-solaris.cpp \
1109 r3/solaris/thread-affinity-solaris.cpp
1110RuntimeR3_SOURCES.solaris.amd64 = \
1111 r3/solaris/coredumper-solaris.cpp \
1112 r3/solaris/RTSystemQueryDmiString-solaris.cpp
1113RuntimeR3_SOURCES.solaris.x86 = \
1114 r3/solaris/coredumper-solaris.cpp \
1115 r3/solaris/RTSystemQueryDmiString-solaris.cpp
1116RuntimeR3_SOURCES.solaris.sparc32 = \
1117 generic/RTSystemQueryDmiString-generic.cpp
1118RuntimeR3_SOURCES.solaris.sparc64 = \
1119 generic/RTSystemQueryDmiString-generic.cpp
1120
1121RuntimeR3_SOURCES.haiku = \
1122 generic/RTDirQueryInfo-generic.cpp \
1123 generic/RTDirSetTimes-generic.cpp \
1124 generic/RTFileMove-generic.cpp \
1125 generic/RTLogWriteDebugger-generic.cpp \
1126 generic/RTProcDaemonize-generic.cpp \
1127 generic/RTTimeLocalNow-generic.cpp \
1128 generic/RTTimerCreate-generic.cpp \
1129 generic/RTUuidCreate-generic.cpp \
1130 generic/mppresent-generic.cpp \
1131 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1132 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1133 generic/sched-generic.cpp \
1134 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),ockless-,)generic.cpp \
1135 generic/timer-generic.cpp \
1136 generic/utf16locale-generic.cpp \
1137 generic/uuid-generic.cpp\
1138 generic/RTProcIsRunningByName-generic.cpp \
1139 generic/RTThreadGetNativeState-generic.cpp \
1140 generic/RTMpGetCoreCount-generic.cpp \
1141 generic/RTMpGetOnlineCoreCount-generic.cpp \
1142 r3/haiku/rtProcInitExePath-haiku.cpp \
1143 r3/haiku/time-haiku.cpp \
1144 r3/generic/allocex-r3-generic.cpp \
1145 r3/posix/RTFileQueryFsSizes-posix.cpp \
1146 r3/posix/RTHandleGetStandard-posix.cpp \
1147 r3/posix/RTMemProtect-posix.cpp \
1148 r3/posix/RTPathUserHome-posix.cpp \
1149 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1150 r3/posix/RTSystemQueryTotalRam-posix.cpp \
1151 r3/posix/RTTimeNow-posix.cpp \
1152 r3/posix/dir-posix.cpp \
1153 r3/posix/env-posix.cpp \
1154 r3/posix/errvars-posix.cpp \
1155 r3/posix/fileio-posix.cpp \
1156 r3/posix/fileio2-posix.cpp \
1157 r3/posix/filelock-posix.cpp \
1158 r3/posix/fs-posix.cpp \
1159 r3/posix/fs2-posix.cpp \
1160 r3/posix/fs3-posix.cpp \
1161 r3/posix/ldrNative-posix.cpp \
1162 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1163 r3/posix/rtmemlocked-posix.cpp \
1164 r3/posix/path-posix.cpp \
1165 r3/posix/path2-posix.cpp \
1166 r3/posix/pathhost-posix.cpp \
1167 r3/posix/pipe-posix.cpp \
1168 r3/posix/process-posix.cpp \
1169 r3/posix/process-creation-posix.cpp \
1170 r3/posix/rand-posix.cpp \
1171 r3/posix/semevent-posix.cpp \
1172 r3/posix/semeventmulti-posix.cpp \
1173 r3/posix/semmutex-posix.cpp \
1174 r3/posix/symlink-posix.cpp \
1175 r3/posix/thread-posix.cpp \
1176 r3/posix/thread2-posix.cpp \
1177 r3/posix/timelocal-posix.cpp \
1178 r3/posix/tls-posix.cpp \
1179 r3/posix/utf8-posix.cpp
1180
1181## PORTME: Porters add their selection of platform specific files for Ring-3 here.
1182
1183
1184#
1185# RuntimeBldProg - Static Runtime for build programs.
1186#
1187# Note! This is a bit of hacky since kBuild doesn't support building libraries
1188# for build programs.
1189#
1190RuntimeBldProg_TEMPLATE := VBoxAdvBldProg
1191RuntimeBldProg_EXTENDS := RuntimeR3
1192RuntimeBldProg_BLD_TRG := $(KBUILD_HOST)
1193RuntimeBldProg_BLD_TRG_ARCH := $(KBUILD_HOST_ARCH)
1194RuntimeBldProg_BLD_TRG_CPU := $(KBUILD_HOST_CPU)
1195RuntimeBldProg_DEFS := $(RuntimeR3_DEFS) IPRT_WITHOUT_LDR_VERIFY
1196RuntimeBldProg_SOURCES = $(filter-out \
1197 r3/xml.cpp \
1198 common/zip/xarvfs.cpp \
1199 , $(RuntimeR3_SOURCES))
1200
1201
1202
1203#
1204# RuntimeGuestR3 - Guest Additions Runtime (static/exe).
1205# (The KBUILD_HOST inheritance here is for cross building the linux
1206# additions, while .x86 is for cross building x86 while targeting amd64.)
1207#
1208RuntimeGuestR3_TEMPLATE := VBoxGuestR3Lib
1209## @todo change this to EXTEND the RuntimeR3 target.
1210RuntimeGuestR3_SDKS.win := $(RuntimeR3_SDKS.win)
1211RuntimeGuestR3_DEFS := $(filter-out RTCRITSECT_STRICT RT_NO_GIP IPRT_WITH_OPENSSL, $(RuntimeR3_DEFS))
1212RuntimeGuestR3_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
1213RuntimeGuestR3_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
1214RuntimeGuestR3_INCS := $(RuntimeR3_INCS)
1215RuntimeGuestR3_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
1216RuntimeGuestR3_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
1217RuntimeGuestR3_SOURCES := $(filter-out \
1218 common/time/timesupref.cpp \
1219 common/time/timesupA.asm \
1220 common/time/timesup.cpp \
1221 common/checksum/x509.cpp \
1222 generic/RTLogWriteUser-generic.cpp \
1223 r3/xml.cpp \
1224 common/zip/xarvfs.cpp \
1225 , $(RuntimeR3_SOURCES))
1226RuntimeGuestR3_SOURCES += \
1227 common/time/timesysalias.cpp \
1228 VBox/logbackdoor.cpp
1229RuntimeGuestR3_SOURCES.$(KBUILD_TARGET) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
1230RuntimeGuestR3_SOURCES.$(KBUILD_HOST) := $(RuntimeR3_SOURCES.$(KBUILD_HOST))
1231RuntimeGuestR3_SOURCES.$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH))
1232RuntimeGuestR3_SOURCES.x86 := $(RuntimeR3_SOURCES.x86)
1233RuntimeGuestR3_SOURCES.amd64 := $(RuntimeR3_SOURCES.amd64)
1234RuntimeGuestR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
1235RuntimeGuestR3_SOURCES.$(KBUILD_TARGET).x86 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).x86)
1236RuntimeGuestR3_SOURCES.$(KBUILD_TARGET).amd64:= $(RuntimeR3_SOURCES.$(KBUILD_TARGET).amd64)
1237RuntimeGuestR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH))
1238RuntimeGuestR3_SOURCES.win.x86 += \
1239 r3/win/vcc100-kernel32-fakes.cpp \
1240 r3/win/vcc100-kernel32-fakesA.asm
1241
1242#
1243# RuntimeGuestR3-x86 - Same as RuntimeGuestR3, except that it's targeting x86.
1244#
1245RuntimeGuestR3-x86_EXTENDS := RuntimeGuestR3
1246RuntimeGuestR3-x86_BLD_TRG_ARCH := x86
1247
1248
1249#
1250# RuntimeGuestR3Shared - Guest Additions Runtime (static/dll).
1251#
1252RuntimeGuestR3Shared_TEMPLATE := VBoxGuestR3Dll
1253RuntimeGuestR3Shared_EXTENDS := RuntimeGuestR3
1254RuntimeGuestR3Shared_INST = $(INST_ADDITIONS_LIB)
1255
1256
1257#
1258# RuntimeGuestR3Shared-x86 - Same as RuntimeGuestR3Shared, except that it's targeting x86.
1259#
1260RuntimeGuestR3Shared-x86_EXTENDS := RuntimeGuestR3Shared
1261RuntimeGuestR3Shared-x86_BLD_TRG_ARCH := x86
1262
1263
1264#
1265# RuntimeGuestR3Mini - Minimal Guest Additions Runtime which does not require
1266# initialization and can be linked into an .so. Intended
1267# for X11 drivers, GRADD and similar.
1268#
1269RuntimeGuestR3Mini_TEMPLATE := VBoxGuestR3Dll
1270## @todo change this to EXTEND the RuntimeGuestR3 target.
1271RuntimeGuestR3Mini_INST := $(INST_ADDITIONS_LIB)
1272RuntimeGuestR3Mini_SDKS.win := $(RuntimeR3_SDKS.win)
1273RuntimeGuestR3Mini_DEFS := \
1274 $(filter-out RTCRITSECT_STRICT RT_NO_GIP RT_WITH_ICONV_CACHE, $(RuntimeR3_DEFS)) \
1275 RT_MINI IN_RT_STATIC RTMEM_NO_WRAP_TO_EF_APIS
1276RuntimeGuestR3Mini_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
1277RuntimeGuestR3Mini_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
1278RuntimeGuestR3Mini_INCS := $(RuntimeR3_INCS)
1279RuntimeGuestR3Mini_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
1280RuntimeGuestR3Mini_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
1281RuntimeGuestR3Mini_SOURCES = \
1282 common/alloc/alloc.cpp \
1283 common/err/errmsg.cpp \
1284 common/err/RTErrConvertFromErrno.cpp \
1285 common/log/logformat.cpp \
1286 common/misc/RTAssertMsg1Weak.cpp \
1287 common/misc/RTAssertMsg2.cpp \
1288 common/misc/RTAssertMsg2Add.cpp \
1289 common/misc/RTAssertMsg2AddWeak.cpp \
1290 common/misc/RTAssertMsg2AddWeakV.cpp \
1291 common/misc/RTAssertMsg2Weak.cpp \
1292 common/misc/RTAssertMsg2WeakV.cpp \
1293 common/misc/assert.cpp \
1294 common/misc/buildconfig.cpp \
1295 common/misc/sanity-c.c \
1296 common/misc/sanity-cpp.cpp \
1297 common/misc/sg.cpp \
1298 common/path/rtPathVolumeSpecLen.cpp \
1299 common/path/RTPathAbsDup.cpp \
1300 common/path/RTPathAbsEx.cpp \
1301 common/path/RTPathAbsExDup.cpp \
1302 common/path/RTPathAppend.cpp \
1303 common/path/RTPathAppendEx.cpp \
1304 common/path/RTPathExt.cpp \
1305 common/path/RTPathFilename.cpp \
1306 common/path/RTPathHasExt.cpp \
1307 common/path/RTPathHasPath.cpp \
1308 common/path/RTPathJoin.cpp \
1309 common/path/RTPathJoinA.cpp \
1310 common/path/RTPathParseSimple.cpp \
1311 common/path/RTPathRealDup.cpp \
1312 common/path/RTPathStripExt.cpp \
1313 common/path/RTPathStripFilename.cpp \
1314 common/path/RTPathStripTrailingSlash.cpp \
1315 common/string/RTStrCat.cpp \
1316 common/string/RTStrCatEx.cpp \
1317 common/string/RTStrCatP.cpp \
1318 common/string/RTStrCatPEx.cpp \
1319 common/string/RTStrCmp.cpp \
1320 common/string/RTStrCopy.cpp \
1321 common/string/RTStrCopyEx.cpp \
1322 common/string/RTStrCopyP.cpp \
1323 common/string/RTStrCopyPEx.cpp \
1324 common/string/RTStrNCmp.cpp \
1325 common/string/RTStrNLen.cpp \
1326 common/string/RTStrNLenEx.cpp \
1327 common/string/RTStrStr.cpp \
1328 common/string/straprintf.cpp \
1329 common/string/strformat.cpp \
1330 common/string/strformatnum.cpp \
1331 common/string/strformatrt.cpp \
1332 common/string/strformattype.cpp \
1333 common/string/stringalloc.cpp \
1334 common/string/strprintf.cpp \
1335 common/string/strtonum.cpp \
1336 common/string/unidata-flags.cpp \
1337 common/string/unidata-lower.cpp \
1338 common/string/unidata-upper.cpp \
1339 common/string/utf-8.cpp \
1340 common/string/utf-8-case.cpp \
1341 common/string/utf-8-case2.cpp \
1342 common/string/utf-16.cpp \
1343 common/string/utf-16-case.cpp \
1344 common/string/utf-16-latin-1.cpp \
1345 common/table/avlpv.cpp \
1346 generic/critsect-generic.cpp \
1347 generic/pathhost-generic.cpp \
1348 generic/RTAssertShouldPanic-generic.cpp \
1349 generic/errvars-generic.cpp \
1350 r3/alloc.cpp \
1351 r3/alloc-ef.cpp \
1352 r3/fileio.cpp \
1353 r3/fs.cpp
1354RuntimeGuestR3Mini_SOURCES.freebsd = \
1355 r3/posix/RTMemProtect-posix.cpp \
1356 r3/posix/rtmempage-exec-mmap-posix.cpp \
1357 r3/posix/RTPathUserHome-posix.cpp \
1358 r3/posix/env-posix.cpp \
1359 r3/posix/fileio-posix.cpp \
1360 r3/posix/fileio2-posix.cpp \
1361 r3/posix/path-posix.cpp \
1362 r3/posix/path2-posix.cpp \
1363 r3/posix/utf8-posix.cpp \
1364 r3/posix/thread2-posix.cpp \
1365 common/err/errmsgxpcom.cpp
1366RuntimeGuestR3Mini_SOURCES.linux = \
1367 r3/posix/RTMemProtect-posix.cpp \
1368 r3/posix/rtmempage-exec-mmap-posix.cpp \
1369 r3/posix/RTPathUserHome-posix.cpp \
1370 r3/posix/env-posix.cpp \
1371 r3/posix/fileio-posix.cpp \
1372 r3/posix/fileio2-posix.cpp \
1373 r3/posix/path-posix.cpp \
1374 r3/posix/path2-posix.cpp \
1375 r3/posix/utf8-posix.cpp \
1376 r3/posix/thread2-posix.cpp \
1377 common/err/errmsgxpcom.cpp
1378RuntimeGuestR3Mini_SOURCES.solaris = \
1379 r3/posix/RTMemProtect-posix.cpp \
1380 r3/posix/rtmempage-exec-mmap-posix.cpp \
1381 r3/posix/RTPathUserHome-posix.cpp \
1382 r3/posix/env-posix.cpp \
1383 r3/posix/fileio-posix.cpp \
1384 r3/posix/fileio2-posix.cpp \
1385 r3/posix/path-posix.cpp \
1386 r3/posix/path2-posix.cpp \
1387 r3/posix/utf8-posix.cpp \
1388 r3/posix/thread2-posix.cpp \
1389 common/err/errmsgxpcom.cpp
1390RuntimeGuestR3Mini_SOURCES.win = \
1391 r3/win/alloc-win.cpp \
1392 r3/win/fileio-win.cpp \
1393 r3/win/path-win.cpp \
1394 r3/win/utf8-win.cpp \
1395 r3/win/thread2-win.cpp \
1396 win/errmsgwin.cpp \
1397 win/RTErrConvertFromWin32.cpp
1398
1399# VBox specific stuff.
1400RuntimeGuestR3Mini_SOURCES += \
1401 VBox/logbackdoor.cpp \
1402 VBox/logbackdoor-redirect.cpp
1403
1404
1405#
1406# VBoxRT - Shared Object / DLL version.
1407#
1408VBoxRT_TEMPLATE = VBoxR3DllNoPic
1409VBoxRT_SDKS = VBOX_LIBXML2
1410ifdef VBOX_WITH_LIBCURL
1411 VBoxRT_SDKS += VBOX_LIBCURL
1412endif
1413VBoxRT_SDKS += VBOX_OPENSSL
1414VBoxRT_SDKS.win = $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
1415if1of ($(KBUILD_TARGET)$(VBOX_WITH_HARDENING), darwin win$(VBOX_WITH_HARDENING))
1416VBoxRT_INST = $(INST_DLL) $(INST_TESTCASE)
1417endif
1418VBoxRT_DEFS := $(filter-out RT_NO_GIP, $(RuntimeR3_DEFS)) \
1419 IN_SUP_R3 IN_SUP_R3 IPRT_WITH_XAR \
1420 $(if-expr !defined(VBOX_WITH_ALT_HASH_CODE),IPRT_WITHOUT_SHA512T224 IPRT_WITHOUT_SHA512T256,)
1421ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1422 VBoxRT_DEFS += RT_NO_GIP
1423endif
1424ifdef VBOX_WITH_LIBCURL
1425 VBoxRT_DEFS += IPRT_WITH_HTTP
1426endif
1427VBoxRT_DEFS.$(KBUILD_TYPE) := $(RuntimeR3_DEFS.$(KBUILD_TYPE))
1428VBoxRT_SOURCES := \
1429 VBox/VBoxRTDeps.cpp \
1430 $(filter-out common/checksum/crc32.cpp, \
1431 $(if-expr defined(VBOX_WITH_ALT_HASH_CODE), $(RuntimeR3_SOURCES), \
1432 $(patsubst common/checksum/alt-%,common/checksum/openssl-%,$(RuntimeR3_SOURCES)) ) ) \
1433 common/checksum/crc32-zlib.cpp \
1434 common/misc/aiomgr.cpp
1435ifdef VBOX_WITH_LIBCURL
1436 VBoxRT_SOURCES += common/misc/s3.cpp
1437 VBoxRT_SOURCES += common/misc/http.cpp
1438endif
1439VBoxRT_SOURCES.$(KBUILD_TARGET) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
1440VBoxRT_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
1441VBoxRT_SOURCES.$(KBUILD_TARGET).x86 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).x86)
1442VBoxRT_SOURCES.$(KBUILD_TARGET).amd64 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).amd64)
1443VBoxRT_SOURCES.$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH))
1444VBoxRT_SOURCES.x86 := $(RuntimeR3_SOURCES.x86)
1445VBoxRT_SOURCES.amd64 := $(RuntimeR3_SOURCES.amd64)
1446VBoxRT_SOURCES.win += \
1447 r3/win/dllmain-win.cpp \
1448 r3/win/fileaio-win.cpp \
1449 $(VBoxRT_0_OUTDIR)/VBoxRT.def
1450VBoxRT_SOURCES.linux += \
1451 r3/linux/fileaio-linux.cpp
1452VBoxRT_SOURCES.solaris += \
1453 r3/solaris/fileaio-solaris.cpp
1454VBoxRT_SOURCES.darwin += \
1455 r3/posix/fileaio-posix.cpp
1456VBoxRT_SOURCES.freebsd += \
1457 r3/freebsd/fileaio-freebsd.cpp
1458VBoxRT_INCS := $(RuntimeR3_INCS)
1459VBoxRT_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
1460VBoxRT_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
1461VBoxRT_LIBS = \
1462 $(PATH_STAGE_LIB)/VBox-liblzf$(VBOX_SUFF_LIB)
1463if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1464VBoxRT_LIBS += \
1465 $(PATH_STAGE_LIB)/SUPR3$(VBOX_SUFF_LIB)
1466endif
1467ifdef IPRT_WITH_KSTUFF
1468 VBoxRT_LIBS += \
1469 $(PATH_STAGE_LIB)/VBox-kStuff$(VBOX_SUFF_LIB)
1470endif
1471ifndef SDK_VBOX_LIBXML2_LIBS
1472 VBoxRT_LIBS += \
1473 $(PATH_STAGE_LIB)/VBox-libxml2$(VBOX_SUFF_LIB)
1474endif
1475VBoxRT_LIBS += \
1476 $(SDK_VBOX_ZLIB_LIBS)
1477ifndef SDK_VBOX_OPENSSL_LIBS
1478 VBoxRT_LIBS += \
1479 $(PATH_STAGE_LIB)/VBox-libcrypto$(VBOX_SUFF_LIB) \
1480 $(PATH_STAGE_LIB)/VBox-libssl$(VBOX_SUFF_LIB)
1481endif
1482ifdef IPRT_WITH_LZO
1483 VBoxRT_LIBS += lzo2
1484endif
1485VBoxRT_LIBS.linux = \
1486 crypt
1487VBoxRT_LIBS.darwin = \
1488 iconv
1489VBoxRT_LIBS.freebsd = \
1490 iconv \
1491 rt
1492VBoxRT_LIBS.haiku = \
1493 iconv
1494VBoxRT_LIBS.solaris = \
1495 kstat \
1496 contract
1497ifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
1498 # SMBIOS not available on Solaris SPARC.
1499 VBoxRT_LIBS.solaris += smbios
1500endif
1501VBoxRT_LIBS.win = \
1502 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/vccomsup.lib \
1503 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/wbemuuid.lib
1504VBoxRT_LDFLAGS.darwin = -framework IOKit -framework CoreFoundation -framework CoreServices -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxRT.dylib
1505VBoxRT_LDFLAGS.win = /MANIFEST
1506
1507if1of ($(DLLS), VBoxRT)
1508$$(VBoxRT_0_OUTDIR)/VBoxRT.def: \
1509 $(PATH_SUB_CURRENT)/r3/win/VBoxRT-$$(if-expr $$(KBUILD_TARGET_ARCH) == amd64,win64,win32).def \
1510 $(PATH_SUB_CURRENT)/r3/win/$(if $(VBOX_OSE),VBoxRT-openssl-ose.def,VBoxRT-openssl.def)
1511 $(RM) -f -- $@
1512 $(REDIRECT) -wto $@ -- $(CAT_EXT) $^
1513endif
1514
1515
1516#
1517# HACK ALERT! Make testcase run during build on SELinux boxes.
1518# Create a dummy DLL that ensure that VBoxRT is installed
1519# during the DLL pass and cleaned up later.
1520#
1521ifeq ($(KBUILD_TARGET),linux)
1522 if1of (VBoxRT, $(DLLS))
1523 ifneq ($(wildcard /usr/bin/chcon),)
1524VBoxRT_INSTTYPE = none
1525VBoxRT_DEBUG_INSTTYPE = both
1526
1527DLLS += VBoxRTDummy
1528VBoxRTDummy_TEMPLATE = VBoxR3Dll
1529VBoxRTDummy_INSTTYPE = none
1530VBoxRTDummy_LIBS = $(PATH_STAGE_BIN)/VBoxRT.so
1531VBoxRTDummy_CLEAN = $(PATH_STAGE_BIN)/VBoxRT.so
1532BLDDIRS += $(PATH_STAGE_BIN)
1533
1534$(PATH_STAGE_BIN)/VBoxRT.so: $$(VBoxRT_1_TARGET) | $$(dir $$@)
1535 $(INSTALL) $< $@
1536 chcon -t texrel_shlib_t $@ || true
1537
1538VBoxRT:: VBoxRTDummy
1539 endif # chcon present.
1540 endif # building VBoxRT
1541endif # linux
1542
1543
1544#
1545# VBoxRT-x86 - 32-bit version of VBoxRT
1546#
1547VBoxRT-x86_EXTENDS = VBoxRT
1548VBoxRT-x86_TEMPLATE = VBoxR3Dll-x86
1549VBoxRT-x86_INST.win = $(INST_DLL)x86/
1550VBoxRT-x86_SDKS = VBOX_LIBXML2
1551ifdef VBOX_WITH_LIBCURL
1552 VBoxRT-x86_SDKS += VBOX_LIBCURL-x86
1553endif
1554VBoxRT-x86_SDKS += VBOX_OPENSSL-x86
1555
1556VBoxRT-x86_LIBS = \
1557 $(PATH_STAGE_LIB)/VBox-liblzf-x86$(VBOX_SUFF_LIB)
1558if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1559VBoxRT-x86_LIBS += \
1560 $(PATH_STAGE_LIB)/SUPR3-x86$(VBOX_SUFF_LIB)
1561endif
1562ifdef IPRT_WITH_KSTUFF
1563 VBoxRT-x86_LIBS += \
1564 $(PATH_STAGE_LIB)/VBox-kStuff-x86$(VBOX_SUFF_LIB)
1565endif
1566ifndef SDK_VBOX_LIBXML2_LIBS
1567 VBoxRT-x86_LIBS += \
1568 $(PATH_STAGE_LIB)/VBox-libxml2-x86$(VBOX_SUFF_LIB)
1569endif
1570VBoxRT-x86_LIBS += \
1571 $(SDK_VBOX_ZLIB_LIBS-x86)
1572ifndef SDK_VBOX_OPENSSL_LIBS
1573 VBoxRT-x86_LIBS += \
1574 $(PATH_STAGE_LIB)/VBox-libcrypto-x86$(VBOX_SUFF_LIB) \
1575 $(PATH_STAGE_LIB)/VBox-libssl-x86$(VBOX_SUFF_LIB)
1576endif
1577ifdef IPRT_WITH_LZO
1578 VBoxRT-x86_LIBS += lzo2
1579endif
1580VBoxRT-x86_LIBS.linux = \
1581 crypt
1582VBoxRT-x86_LIBS.darwin = \
1583 iconv
1584VBoxRT-x86_LIBS.freebsd = \
1585 iconv \
1586 rt
1587VBoxRT-x86_LIBS.haiku = \
1588 iconv
1589VBoxRT-x86_LIBS.solaris = \
1590 kstat \
1591 contract
1592ifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
1593 # SMBIOS not available on Solaris SPARC.
1594 VBoxRT-x86_LIBS.solaris += smbios
1595endif
1596VBoxRT-x86_LIBS.win = \
1597 $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/vccomsup.lib \
1598 $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/wbemuuid.lib
1599
1600VBoxRT-x86_SOURCES.win = $(filter-out %.def,$(VBoxRT_SOURCES.win)) \
1601 $(VBoxRT-x86_0_OUTDIR)/VBoxRT-x86.def
1602if1of ($(DLLS), VBoxRT-x86)
1603$$(VBoxRT-x86_0_OUTDIR)/VBoxRT-x86.def: \
1604 $(PATH_SUB_CURRENT)/r3/win/VBoxRT-win32.def \
1605 $(PATH_SUB_CURRENT)/r3/win/$(if $(VBOX_OSE),VBoxRT-openssl-ose.def,VBoxRT-openssl.def)
1606 $(RM) -f -- $@
1607 $(REDIRECT) -wto $@ -- $(CAT_EXT) $^
1608endif
1609
1610#
1611# VBoxRTImp - Import library/hack.
1612#
1613ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.amd64)
1614$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-openssl-ose.def r3/win/VBoxRT-win64.def)
1615else ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.x86)
1616$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-openssl-ose.def r3/win/VBoxRT-win32.def)
1617else
1618$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-openssl-ose.def)
1619endif
1620
1621
1622#
1623# RuntimeR3NoCRTGCC - CRT replacement lib for VBoxREM.
1624# This is used together with VBoxRT.
1625#
1626## @todo the *_alias.c stuff is busted, remove and use RT_WITH_NOCRT_ALIASES instead.
1627RuntimeR3NoCRTGCC_TEMPLATE = VBoxNoCrtGccLib
1628RuntimeR3NoCRTGCC_LIBSUFF = $(VBOX_SUFF_LIB)
1629ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1630 RuntimeR3NoCRTGCC_DEFS += RT_NO_GIP
1631endif
1632RuntimeR3NoCRTGCC_INCS = include
1633RuntimeR3NoCRTGCC_SOURCES := \
1634 common/misc/sanity-cpp.cpp \
1635 common/misc/sanity-c.c \
1636 \
1637 $(RuntimeNoCrt_SOURCES)
1638
1639if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1640RuntimeR3NoCRTGCC_SOURCES += \
1641 common/math/ceill.asm \
1642 common/math/cosl.asm \
1643 common/math/fabs.asm \
1644 common/math/fabsf.asm \
1645 common/math/fabsl.asm \
1646 common/math/floor.asm \
1647 common/math/floorf.asm \
1648 common/math/floorl.asm \
1649 common/math/ldexpl.asm \
1650 common/math/llrint.asm \
1651 common/math/llrintf.asm \
1652 common/math/llrintl.asm \
1653 common/math/logl.asm \
1654 common/math/lrint.asm \
1655 common/math/lrintf.asm \
1656 common/math/lrintl.asm \
1657 common/math/remainder.asm \
1658 common/math/remainderf.asm \
1659 common/math/remainderl.asm \
1660 common/math/sinl.asm \
1661 common/math/tanl.asm \
1662 common/math/trunc.asm \
1663 common/math/truncf.asm \
1664 common/math/truncl.asm \
1665 \
1666 common/string/memchr_alias.c \
1667 common/string/memcmp_alias.c \
1668 common/string/memcpy_alias.c \
1669 common/string/memmove_alias.c \
1670 common/string/memset_alias.c \
1671 common/string/strchr_alias.c \
1672 common/string/strcmp_alias.c \
1673 common/string/strlen_alias.c
1674endif
1675
1676RuntimeR3NoCRTGCC_SOURCES.x86 = \
1677 common/math/x86/fenv-x86.c \
1678 common/math/gcc/adddi3.c \
1679 common/math/gcc/anddi3.c \
1680 common/math/gcc/ashldi3.c \
1681 common/math/gcc/ashrdi3.c \
1682 common/math/gcc/cmpdi2.c \
1683 common/math/gcc/divdi3.c \
1684 common/math/gcc/iordi3.c \
1685 common/math/gcc/lshldi3.c \
1686 common/math/gcc/lshrdi3.c \
1687 common/math/gcc/moddi3.c \
1688 common/math/gcc/muldi3.c \
1689 common/math/gcc/negdi2.c \
1690 common/math/gcc/notdi2.c \
1691 common/math/gcc/qdivrem.c \
1692 common/math/gcc/subdi3.c \
1693 common/math/gcc/ucmpdi2.c \
1694 common/math/gcc/udivdi3.c \
1695 common/math/gcc/umoddi3.c \
1696 common/math/gcc/xordi3.c
1697
1698
1699#
1700# RuntimeR0 - Ring-0 library for VMMR0.
1701#
1702RuntimeR0_TEMPLATE = VBoxR0
1703RuntimeR0_DEFS = IN_RT_R0 RT_WITH_VBOX
1704ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1705 RuntimeR0_DEFS += RT_NO_GIP
1706endif
1707RuntimeR0_INCS = include
1708RuntimeR0_SOURCES := \
1709 common/log/logellipsis.cpp \
1710 common/log/logrelellipsis.cpp \
1711 common/log/logcom.cpp \
1712 common/log/logformat.cpp \
1713 common/log/tracebuf.cpp \
1714 common/log/tracedefault.cpp \
1715 common/misc/RTAssertMsg1Weak.cpp \
1716 common/misc/RTAssertMsg2.cpp \
1717 common/misc/RTAssertMsg2Add.cpp \
1718 common/misc/RTAssertMsg2AddWeak.cpp \
1719 common/misc/RTAssertMsg2AddWeakV.cpp \
1720 common/misc/RTAssertMsg2Weak.cpp \
1721 common/misc/RTAssertMsg2WeakV.cpp \
1722 common/misc/buildconfig.cpp \
1723 common/misc/once.cpp \
1724 common/misc/sanity-c.c \
1725 common/misc/sanity-cpp.cpp \
1726 common/misc/term.cpp \
1727 common/path/RTPathFilename.cpp \
1728 common/string/strhash1.cpp \
1729 common/string/strncmp.cpp \
1730 common/string/strpbrk.cpp \
1731 common/string/RTStrCat.cpp \
1732 common/string/RTStrCatEx.cpp \
1733 common/string/RTStrCatP.cpp \
1734 common/string/RTStrCatPEx.cpp \
1735 common/string/RTStrCopy.cpp \
1736 common/string/RTStrCopyEx.cpp \
1737 common/string/RTStrCopyP.cpp \
1738 common/string/RTStrCopyPEx.cpp \
1739 common/string/RTStrNLen.cpp \
1740 common/string/RTStrNLenEx.cpp \
1741 common/table/avlgcptr.cpp \
1742 common/table/avlhcphys.cpp \
1743 common/table/avllu32.cpp \
1744 common/table/avlogcphys.cpp \
1745 common/table/avlogcptr.cpp \
1746 common/table/avlohcphys.cpp \
1747 common/table/avloioport.cpp \
1748 common/table/avlpv.cpp \
1749 common/table/avlrogcphys.cpp \
1750 common/table/avlrogcptr.cpp \
1751 common/table/avlroioport.cpp \
1752 common/table/avlroogcptr.cpp \
1753 common/table/avlu32.cpp \
1754 common/table/avlou32.cpp \
1755 common/time/timesup.cpp \
1756 generic/RTAssertShouldPanic-generic.cpp \
1757 \
1758 $(RuntimeNoCrt_SOURCES)
1759
1760if1of ($(KBUILD_TARGET), darwin solaris freebsd)
1761RuntimeR0_SOURCES += \
1762 common/math/gcc/adddi3.c \
1763 common/math/gcc/anddi3.c \
1764 common/math/gcc/ashldi3.c \
1765 common/math/gcc/ashrdi3.c \
1766 common/math/gcc/cmpdi2.c \
1767 common/math/gcc/divdi3.c \
1768 common/math/gcc/iordi3.c \
1769 common/math/gcc/lshldi3.c \
1770 common/math/gcc/lshrdi3.c \
1771 common/math/gcc/moddi3.c \
1772 common/math/gcc/muldi3.c \
1773 common/math/gcc/negdi2.c \
1774 common/math/gcc/notdi2.c \
1775 common/math/gcc/qdivrem.c \
1776 common/math/gcc/subdi3.c \
1777 common/math/gcc/ucmpdi2.c \
1778 common/math/gcc/udivdi3.c \
1779 common/math/gcc/umoddi3.c \
1780 common/math/gcc/xordi3.c
1781endif
1782
1783RuntimeR0_SOURCES.x86 += \
1784 common/asm/ASMCpuIdExSlow.asm \
1785 common/asm/ASMAtomicUoAndU64.asm \
1786 common/asm/ASMAtomicUoAndU32.asm \
1787 common/asm/ASMAtomicUoOrU64.asm \
1788 common/asm/ASMAtomicUoOrU32.asm \
1789 common/asm/ASMRdMsrEx.asm \
1790 common/asm/ASMWrMsrEx.asm
1791RuntimeR0_SOURCES.amd64 += \
1792 common/asm/ASMCpuIdExSlow.asm \
1793 common/asm/ASMAtomicUoAndU64.asm \
1794 common/asm/ASMAtomicUoAndU32.asm \
1795 common/asm/ASMAtomicUoOrU64.asm \
1796 common/asm/ASMAtomicUoOrU32.asm \
1797 common/asm/ASMRdMsrEx.asm \
1798 common/asm/ASMWrMsrEx.asm
1799
1800#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
1801# RuntimeR0_SOURCES += common/time/timesupA.asm
1802#else
1803 RuntimeR0_SOURCES += common/time/timesupref.cpp
1804#endif
1805
1806RuntimeR0_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
1807RuntimeR0_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES)
1808RuntimeR0_SOURCES.win = \
1809 nt/NtProcessStartup-stub.cpp
1810
1811RuntimeR0_SOURCES.os2 = \
1812 os2/sys0.asm
1813
1814
1815#
1816# RuntimeR0Stub - Ring-0 context startup stub for Windows and Solaris.
1817#
1818RuntimeR0Stub_TEMPLATE = $(if-expr "$(KBUILD_TARGET)" == "solaris",VBoxR0DrvLib,VBoxR0)
1819RuntimeR0Stub_SOURCES.win = \
1820 nt/NtProcessStartup-stub.cpp
1821RuntimeR0Stub_SOURCES.solaris = \
1822 r0drv/solaris/modulestub-r0drv-solaris.c
1823
1824
1825#
1826# RuntimeR0Drv - Ring-0 library for host drivers.
1827#
1828RuntimeR0Drv_TEMPLATE = VBoxR0DrvLib
1829RuntimeR0Drv_SDKS.win = ReorderCompilerIncs $(VBOX_WINDDK) $(VBOX_WINPSDK)INCS VBOX_OPENSSL
1830RuntimeR0Drv_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS RT_NO_EXPORT_SYMBOL
1831RuntimeR0Drv_DEFS.win = IN_SUP_R0 LDR_ONLY_PE
1832RuntimeR0Drv_DEFS.linux = MODULE KBUILD_MODNAME=KBUILD_STR\(vboxdrv\) KBUILD_BASENAME=KBUILD_STR\(vboxdrv\) IN_SUP_R0
1833
1834RuntimeR0Drv_INCS := $(PATH_SUB_CURRENT) include
1835RuntimeR0Drv_INCS.freebsd = \
1836 $(PATH_STAGE)/gen-sys-hdrs
1837RuntimeR0Drv_INCS.linux = \
1838 r0drv/linux
1839RuntimeR0Drv_INCS.solaris = \
1840 r0drv/solaris/vbi/i86pc \
1841 r0drv/solaris/vbi/i86pc/sys
1842
1843RuntimeR0Drv_SOURCES = \
1844 common/alloc/alloc.cpp \
1845 common/alloc/heapsimple.cpp \
1846 common/alloc/heapoffset.cpp \
1847 common/checksum/alt-md5.cpp \
1848 common/checksum/crc32.cpp \
1849 common/checksum/crc64.cpp \
1850 common/checksum/ipv4.cpp \
1851 common/checksum/ipv6.cpp \
1852 common/err/RTErrConvertToErrno.cpp \
1853 common/err/RTErrConvertFromErrno.cpp \
1854 common/log/log.cpp \
1855 common/log/logellipsis.cpp \
1856 common/log/logrel.cpp \
1857 common/log/logrelellipsis.cpp \
1858 common/log/logcom.cpp \
1859 common/log/logformat.cpp \
1860 common/log/tracebuf.cpp \
1861 common/log/tracedefault.cpp \
1862 common/misc/RTAssertMsg1Weak.cpp \
1863 common/misc/RTAssertMsg2.cpp \
1864 common/misc/RTAssertMsg2Add.cpp \
1865 common/misc/RTAssertMsg2AddWeak.cpp \
1866 common/misc/RTAssertMsg2AddWeakV.cpp \
1867 common/misc/RTAssertMsg2Weak.cpp \
1868 common/misc/RTAssertMsg2WeakV.cpp \
1869 common/misc/assert.cpp \
1870 common/misc/buildconfig.cpp \
1871 common/misc/handletable.cpp \
1872 common/misc/handletablectx.cpp \
1873 common/misc/handletablesimple.cpp \
1874 common/misc/once.cpp \
1875 common/misc/sanity-c.c \
1876 common/misc/sanity-cpp.cpp \
1877 common/misc/term.cpp \
1878 common/misc/RTMemWipeThoroughly.cpp \
1879 common/path/rtPathVolumeSpecLen.cpp \
1880 common/path/RTPathAbsDup.cpp \
1881 common/path/RTPathAbsEx.cpp \
1882 common/path/RTPathAbsExDup.cpp \
1883 common/path/RTPathAppend.cpp \
1884 common/path/RTPathAppendEx.cpp \
1885 common/path/RTPathExt.cpp \
1886 common/path/RTPathFilename.cpp \
1887 common/path/RTPathHasExt.cpp \
1888 common/path/RTPathHasPath.cpp \
1889 common/path/RTPathParseSimple.cpp \
1890 common/path/RTPathRealDup.cpp \
1891 common/path/RTPathStripExt.cpp \
1892 common/path/RTPathStripFilename.cpp \
1893 common/path/RTPathStripTrailingSlash.cpp \
1894 common/rand/rand.cpp \
1895 common/rand/randadv.cpp \
1896 common/rand/randparkmiller.cpp \
1897 common/string/RTStrCat.cpp \
1898 common/string/RTStrCatEx.cpp \
1899 common/string/RTStrCatP.cpp \
1900 common/string/RTStrCatPEx.cpp \
1901 common/string/RTStrCmp.cpp \
1902 common/string/RTStrCopy.cpp \
1903 common/string/RTStrCopyEx.cpp \
1904 common/string/RTStrCopyP.cpp \
1905 common/string/RTStrCopyPEx.cpp \
1906 common/string/RTStrNCmp.cpp \
1907 common/string/RTStrNLen.cpp \
1908 common/string/RTStrNLenEx.cpp \
1909 common/string/straprintf.cpp \
1910 common/string/strformat.cpp \
1911 common/string/strformatnum.cpp \
1912 common/string/strformatrt.cpp \
1913 common/string/strformattype.cpp \
1914 common/string/strhash1.cpp \
1915 common/string/strprintf.cpp \
1916 common/string/strtonum.cpp \
1917 common/string/stringalloc.cpp \
1918 common/string/unidata-flags.cpp \
1919 common/string/unidata-lower.cpp \
1920 common/string/unidata-upper.cpp \
1921 common/string/utf-8.cpp \
1922 common/string/utf-8-case.cpp \
1923 common/string/utf-8-case2.cpp \
1924 common/string/utf-16.cpp \
1925 common/string/utf-16-case.cpp \
1926 common/string/utf-16-latin-1.cpp \
1927 common/table/avlpv.cpp \
1928 common/time/time.cpp \
1929 generic/RTLogWriteStdErr-stub-generic.cpp \
1930 generic/RTLogWriteUser-generic.cpp \
1931 generic/RTMpGetArraySize-generic.cpp \
1932 generic/RTRandAdvCreateSystemFaster-generic.cpp \
1933 generic/RTSemEventWait-2-ex-generic.cpp \
1934 generic/RTSemEventWaitNoResume-2-ex-generic.cpp \
1935 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1936 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1937 generic/errvars-generic.cpp \
1938 generic/uuid-generic.cpp \
1939 r0drv/alloc-r0drv.cpp \
1940 r0drv/initterm-r0drv.cpp \
1941 r0drv/generic/semspinmutex-r0drv-generic.c \
1942 VBox/log-vbox.cpp \
1943
1944RuntimeR0Drv_SOURCES.amd64 = \
1945 common/asm/ASMRdMsrEx.asm \
1946 common/asm/ASMWrMsrEx.asm
1947RuntimeR0Drv_SOURCES.x86 = \
1948 common/asm/ASMRdMsrEx.asm \
1949 common/asm/ASMWrMsrEx.asm
1950
1951
1952RuntimeR0Drv_SOURCES.linux = \
1953 common/misc/thread.cpp \
1954 common/string/strpbrk.cpp \
1955 generic/RTAssertShouldPanic-generic.cpp \
1956 generic/RTLogWriteStdOut-stub-generic.cpp \
1957 generic/RTMpGetCoreCount-generic.cpp \
1958 generic/mppresent-generic.cpp \
1959 r0drv/linux/alloc-r0drv-linux.c \
1960 r0drv/linux/assert-r0drv-linux.c \
1961 r0drv/linux/initterm-r0drv-linux.c \
1962 r0drv/linux/memobj-r0drv-linux.c \
1963 r0drv/linux/memuserkernel-r0drv-linux.c \
1964 r0drv/linux/mp-r0drv-linux.c \
1965 r0drv/linux/mpnotification-r0drv-linux.c \
1966 r0drv/linux/process-r0drv-linux.c \
1967 r0drv/linux/RTLogWriteDebugger-r0drv-linux.c \
1968 r0drv/linux/semevent-r0drv-linux.c \
1969 r0drv/linux/semeventmulti-r0drv-linux.c \
1970 r0drv/linux/semfastmutex-r0drv-linux.c \
1971 r0drv/linux/semmutex-r0drv-linux.c \
1972 r0drv/linux/spinlock-r0drv-linux.c \
1973 r0drv/linux/thread-r0drv-linux.c \
1974 r0drv/linux/thread2-r0drv-linux.c \
1975 r0drv/linux/threadctxhooks-r0drv-linux.c \
1976 r0drv/linux/time-r0drv-linux.c \
1977 r0drv/linux/timer-r0drv-linux.c \
1978 r0drv/memobj-r0drv.cpp \
1979 r0drv/mpnotification-r0drv.c \
1980 r0drv/powernotification-r0drv.c
1981
1982RuntimeR0Drv_SOURCES.win = \
1983 common/ldr/ldr.cpp \
1984 common/ldr/ldrEx.cpp \
1985 common/ldr/ldrPE.cpp \
1986 common/asn1/asn1-basics.cpp \
1987 common/asn1/asn1-dump.cpp \
1988 common/asn1/asn1-cursor.cpp \
1989 common/asn1/asn1-default-allocator.cpp \
1990 common/asn1/asn1-encode.cpp \
1991 common/asn1/asn1-ut-bitstring.cpp \
1992 common/asn1/asn1-ut-bitstring-decode.cpp \
1993 common/asn1/asn1-ut-boolean.cpp \
1994 common/asn1/asn1-ut-boolean-decode.cpp \
1995 common/asn1/asn1-ut-core.cpp \
1996 common/asn1/asn1-ut-core-decode.cpp \
1997 common/asn1/asn1-ut-dyntype.cpp \
1998 common/asn1/asn1-ut-dyntype-decode.cpp \
1999 common/asn1/asn1-ut-integer.cpp \
2000 common/asn1/asn1-ut-integer-decode.cpp \
2001 common/asn1/asn1-ut-null.cpp \
2002 common/asn1/asn1-ut-null-decode.cpp \
2003 common/asn1/asn1-ut-objid.cpp \
2004 common/asn1/asn1-ut-objid-decode.cpp \
2005 common/asn1/asn1-ut-octetstring.cpp \
2006 common/asn1/asn1-ut-octetstring-decode.cpp \
2007 common/asn1/asn1-ut-string.cpp \
2008 common/asn1/asn1-ut-string-decode.cpp \
2009 common/asn1/asn1-ut-time.cpp \
2010 common/asn1/asn1-ut-time-decode.cpp \
2011 common/crypto/digest-core.cpp \
2012 common/crypto/digest-builtin.cpp \
2013 common/crypto/rsa-asn1-decoder.cpp \
2014 common/crypto/rsa-core.cpp \
2015 common/crypto/rsa-init.cpp \
2016 common/crypto/rsa-sanity.cpp \
2017 common/crypto/pkcs7-asn1-decoder.cpp \
2018 common/crypto/pkcs7-core.cpp \
2019 common/crypto/pkcs7-init.cpp \
2020 common/crypto/pkcs7-sanity.cpp \
2021 common/crypto/pkcs7-verify.cpp \
2022 common/crypto/pkix-signature-builtin.cpp \
2023 common/crypto/pkix-signature-core.cpp \
2024 common/crypto/pkix-signature-rsa.cpp \
2025 common/crypto/pkix-util.cpp \
2026 common/crypto/pkix-verify.cpp \
2027 common/crypto/spc-asn1-decoder.cpp \
2028 common/crypto/spc-core.cpp \
2029 common/crypto/spc-init.cpp \
2030 common/crypto/spc-sanity.cpp \
2031 common/crypto/x509-asn1-decoder.cpp \
2032 common/crypto/x509-certpaths.cpp \
2033 common/crypto/x509-core.cpp \
2034 common/crypto/x509-init.cpp \
2035 common/crypto/x509-sanity.cpp \
2036 common/crypto/x509-verify.cpp \
2037 common/crypto/store.cpp \
2038 common/crypto/store-inmem.cpp \
2039 common/crypto/taf-asn1-decoder.cpp \
2040 common/crypto/taf-core.cpp \
2041 common/crypto/taf-init.cpp \
2042 common/crypto/taf-sanity.cpp \
2043 common/checksum/alt-md2.cpp \
2044 common/checksum/alt-sha1.cpp \
2045 common/checksum/alt-sha256.cpp \
2046 common/checksum/alt-sha512.cpp \
2047 common/checksum/md2str.cpp \
2048 common/checksum/md5str.cpp \
2049 common/checksum/sha1str.cpp \
2050 common/checksum/sha224str.cpp \
2051 common/checksum/sha256str.cpp \
2052 common/checksum/sha384str.cpp \
2053 common/checksum/sha512str.cpp \
2054 common/checksum/sha512t224str.cpp \
2055 common/checksum/sha512t256str.cpp \
2056 common/err/errinfo.cpp \
2057 common/path/RTPathChangeToUnixSlashes.cpp \
2058 common/math/bignum.cpp \
2059 common/misc/zero.asm \
2060 common/string/RTStrPrintHexBytes.cpp \
2061 common/string/RTUtf16Copy.cpp \
2062 common/string/RTUtf16CopyAscii.cpp \
2063 common/string/RTUtf16Cat.cpp \
2064 common/string/RTUtf16CatAscii.cpp \
2065 common/string/RTUtf16End.cpp \
2066 common/string/RTUtf16NLen.cpp \
2067 common/string/RTUtf16NLenEx.cpp \
2068 common/string/RTUtf16PrintHexBytes.cpp \
2069 common/string/strstrip.cpp \
2070 generic/memsafer-generic.cpp \
2071 \
2072 common/misc/thread.cpp \
2073 common/string/memcmp.asm \
2074 common/string/memchr.asm \
2075 common/string/memcpy.asm \
2076 common/string/memset.asm \
2077 common/string/memmove.asm \
2078 common/string/strlen.asm \
2079 common/string/strncmp.cpp \
2080 common/string/strpbrk.cpp \
2081 generic/RTAssertShouldPanic-generic.cpp \
2082 generic/RTLogWriteStdOut-stub-generic.cpp \
2083 generic/RTTimerCreate-generic.cpp \
2084 generic/mppresent-generic.cpp \
2085 generic/RTMpGetCoreCount-generic.cpp \
2086 nt/RTErrConvertFromNtStatus.cpp \
2087 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2088 r0drv/memobj-r0drv.cpp \
2089 r0drv/mpnotification-r0drv.c \
2090 r0drv/powernotification-r0drv.c \
2091 r0drv/nt/alloc-r0drv-nt.cpp \
2092 r0drv/nt/assert-r0drv-nt.cpp \
2093 r0drv/nt/initterm-r0drv-nt.cpp \
2094 r0drv/nt/memobj-r0drv-nt.cpp \
2095 r0drv/nt/memuserkernel-r0drv-nt.cpp \
2096 r0drv/nt/mp-r0drv-nt.cpp \
2097 r0drv/nt/mpnotification-r0drv-nt.cpp \
2098 r0drv/nt/process-r0drv-nt.cpp \
2099 r0drv/nt/RTLogWriteDebugger-r0drv-nt.cpp \
2100 r0drv/nt/semevent-r0drv-nt.cpp \
2101 r0drv/nt/semeventmulti-r0drv-nt.cpp \
2102 r0drv/nt/semfastmutex-r0drv-nt.cpp \
2103 r0drv/nt/semmutex-r0drv-nt.cpp \
2104 r0drv/nt/spinlock-r0drv-nt.cpp \
2105 r0drv/nt/thread-r0drv-nt.cpp \
2106 r0drv/nt/thread2-r0drv-nt.cpp \
2107 r0drv/nt/time-r0drv-nt.cpp \
2108 r0drv/nt/timer-r0drv-nt.cpp \
2109 r0drv/nt/toxic-chkstk-r0drv-nt.asm \
2110 r0drv/nt/RTTimerGetSystemGranularity-r0drv-nt.cpp
2111
2112RuntimeR0Drv_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
2113RuntimeR0Drv_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES)
2114
2115RuntimeR0Drv_SOURCES.darwin = \
2116 common/misc/thread.cpp \
2117 common/string/memchr.asm \
2118 common/string/strpbrk.cpp \
2119 darwin/RTErrConvertFromDarwin.cpp \
2120 darwin/RTErrConvertFromDarwinIO.cpp \
2121 darwin/RTErrConvertFromDarwinKern.cpp \
2122 generic/RTAssertShouldPanic-generic.cpp \
2123 generic/RTTimerCreate-generic.cpp \
2124 generic/RTMpGetCoreCount-generic.cpp \
2125 generic/mppresent-generic.cpp \
2126 generic/timer-generic.cpp \
2127 r0drv/generic/mpnotification-r0drv-generic.cpp \
2128 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2129 r0drv/darwin/alloc-r0drv-darwin.cpp \
2130 r0drv/darwin/assert-r0drv-darwin.cpp \
2131 r0drv/darwin/initterm-r0drv-darwin.cpp \
2132 r0drv/darwin/dbgkrnlinfo-r0drv-darwin.cpp \
2133 r0drv/darwin/memobj-r0drv-darwin.cpp \
2134 r0drv/darwin/mp-r0drv-darwin.cpp \
2135 r0drv/darwin/memuserkernel-r0drv-darwin.cpp \
2136 r0drv/darwin/process-r0drv-darwin.cpp \
2137 r0drv/darwin/RTLogWriteDebugger-r0drv-darwin.cpp \
2138 r0drv/darwin/RTLogWriteStdOut-r0drv-darwin.cpp \
2139 r0drv/darwin/semevent-r0drv-darwin.cpp \
2140 r0drv/darwin/semeventmulti-r0drv-darwin.cpp \
2141 r0drv/darwin/semfastmutex-r0drv-darwin.cpp \
2142 r0drv/darwin/semmutex-r0drv-darwin.cpp \
2143 r0drv/darwin/spinlock-r0drv-darwin.cpp \
2144 r0drv/darwin/thread-r0drv-darwin.cpp \
2145 r0drv/darwin/thread2-r0drv-darwin.cpp \
2146 r0drv/darwin/threadpreempt-r0drv-darwin.cpp \
2147 r0drv/darwin/time-r0drv-darwin.cpp \
2148 r0drv/memobj-r0drv.cpp \
2149 r0drv/powernotification-r0drv.c
2150
2151RuntimeR0Drv_SOURCES.os2 = \
2152 common/string/memchr.asm \
2153 common/string/memcmp.asm \
2154 common/string/memcpy.asm \
2155 common/string/mempcpy.asm \
2156 common/string/memmove.asm \
2157 common/string/memset.asm \
2158 common/string/strchr.asm \
2159 common/string/strcmp.asm \
2160 common/string/strcpy.asm \
2161 common/string/strlen.asm \
2162 \
2163 common/string/strncmp.cpp \
2164 common/string/strpbrk.cpp \
2165 \
2166 common/misc/thread.cpp \
2167 generic/RTAssertShouldPanic-generic.cpp \
2168 generic/RTLogWriteDebugger-generic.cpp \
2169 generic/RTLogWriteStdOut-stub-generic.cpp \
2170 generic/RTMpCpuId-generic.cpp \
2171 generic/RTMpCpuIdFromSetIndex-generic.cpp \
2172 generic/RTMpCpuIdToSetIndex-generic.cpp \
2173 generic/RTMpIsCpuPossible-generic.cpp \
2174 generic/RTMpGetCount-generic.cpp \
2175 generic/RTMpGetMaxCpuId-generic.cpp \
2176 generic/RTMpGetOnlineCount-generic.cpp \
2177 generic/RTMpGetOnlineSet-generic.cpp \
2178 generic/RTMpGetSet-generic.cpp \
2179 generic/RTMpIsCpuOnline-generic.cpp \
2180 generic/RTTimerCreate-generic.cpp \
2181 generic/mppresent-generic.cpp \
2182 os2/RTErrConvertFromOS2.cpp \
2183 os2/rtSemWaitOs2ConvertTimeout.cpp \
2184 os2/sys0.asm \
2185 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
2186 r0drv/generic/RTMpOn-r0drv-generic.cpp \
2187 r0drv/generic/mpnotification-r0drv-generic.cpp \
2188 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2189 r0drv/memobj-r0drv.cpp \
2190 r0drv/powernotification-r0drv.c \
2191 r0drv/os2/alloc-r0drv-os2.cpp \
2192 r0drv/os2/assert-r0drv-os2.cpp \
2193 r0drv/os2/assertA-r0drv-os2.asm \
2194 r0drv/os2/initterm-r0drv-os2.cpp \
2195 r0drv/os2/memobj-r0drv-os2.cpp \
2196 r0drv/os2/memuserkernel-r0drv-os2.cpp \
2197 r0drv/os2/os2imports.imp \
2198 r0drv/os2/process-r0drv-os2.cpp \
2199 r0drv/os2/RTR0AssertPanicSystem-r0drv-os2.asm \
2200 r0drv/os2/RTR0Os2DHQueryDOSVar.asm \
2201 r0drv/os2/RTR0Os2DHVMGlobalToProcess.asm \
2202 r0drv/os2/semevent-r0drv-os2.cpp \
2203 r0drv/os2/semeventmulti-r0drv-os2.cpp \
2204 r0drv/os2/semfastmutex-r0drv-os2.cpp \
2205 r0drv/os2/spinlock-r0drv-os2.cpp \
2206 r0drv/os2/thread-r0drv-os2.cpp \
2207 r0drv/os2/thread2-r0drv-os2.cpp \
2208 r0drv/os2/time-r0drv-os2.cpp \
2209 r0drv/os2/timer-r0drv-os2.cpp \
2210 r0drv/os2/timerA-r0drv-os2.asm
2211
2212RuntimeR0Drv_SOURCES.freebsd = \
2213 common/misc/thread.cpp \
2214 common/string/memchr.asm \
2215 common/string/memmove.asm \
2216 common/string/strpbrk.cpp \
2217 common/string/memcmp.asm \
2218 common/string/strchr.asm \
2219 generic/RTAssertShouldPanic-generic.cpp \
2220 generic/RTLogWriteDebugger-generic.cpp \
2221 generic/RTLogWriteStdOut-stub-generic.cpp \
2222 generic/RTTimerCreate-generic.cpp \
2223 generic/mppresent-generic.cpp \
2224 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
2225 r0drv/generic/mpnotification-r0drv-generic.cpp \
2226 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2227 r0drv/freebsd/alloc-r0drv-freebsd.c \
2228 r0drv/freebsd/assert-r0drv-freebsd.c \
2229 r0drv/freebsd/initterm-r0drv-freebsd.c \
2230 r0drv/freebsd/memobj-r0drv-freebsd.c \
2231 r0drv/freebsd/memuserkernel-r0drv-freebsd.c \
2232 r0drv/freebsd/process-r0drv-freebsd.c \
2233 r0drv/freebsd/semevent-r0drv-freebsd.c \
2234 r0drv/freebsd/semeventmulti-r0drv-freebsd.c \
2235 r0drv/freebsd/semfastmutex-r0drv-freebsd.c \
2236 r0drv/freebsd/semmutex-r0drv-freebsd.c \
2237 r0drv/freebsd/spinlock-r0drv-freebsd.c \
2238 r0drv/freebsd/thread-r0drv-freebsd.c \
2239 r0drv/freebsd/thread2-r0drv-freebsd.c \
2240 r0drv/freebsd/time-r0drv-freebsd.c \
2241 r0drv/freebsd/mp-r0drv-freebsd.c \
2242 generic/timer-generic.cpp \
2243 r0drv/memobj-r0drv.cpp \
2244 r0drv/powernotification-r0drv.c
2245
2246RuntimeR0Drv_SOURCES.solaris = \
2247 common/misc/thread.cpp \
2248 common/string/memchr.asm \
2249 generic/RTAssertShouldPanic-generic.cpp \
2250 generic/RTLogWriteStdOut-stub-generic.cpp \
2251 generic/RTMpGetCoreCount-generic.cpp \
2252 generic/RTTimerCreate-generic.cpp \
2253 generic/mppresent-generic.cpp \
2254 r0drv/memobj-r0drv.cpp \
2255 r0drv/mpnotification-r0drv.c \
2256 r0drv/powernotification-r0drv.c \
2257 r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c \
2258 r0drv/solaris/RTMpPokeCpu-r0drv-solaris.c \
2259 r0drv/solaris/alloc-r0drv-solaris.c \
2260 r0drv/solaris/assert-r0drv-solaris.c \
2261 r0drv/solaris/dbgkrnlinfo-r0drv-solaris.c \
2262 r0drv/solaris/initterm-r0drv-solaris.c \
2263 r0drv/solaris/memuserkernel-r0drv-solaris.c \
2264 r0drv/solaris/mpnotification-r0drv-solaris.c \
2265 r0drv/solaris/memobj-r0drv-solaris.c \
2266 r0drv/solaris/mp-r0drv-solaris.c \
2267 r0drv/solaris/process-r0drv-solaris.c \
2268 r0drv/solaris/semevent-r0drv-solaris.c \
2269 r0drv/solaris/semeventmulti-r0drv-solaris.c \
2270 r0drv/solaris/semfastmutex-r0drv-solaris.c \
2271 r0drv/solaris/semmutex-r0drv-solaris.c \
2272 r0drv/solaris/spinlock-r0drv-solaris.c \
2273 r0drv/solaris/thread-r0drv-solaris.c \
2274 r0drv/solaris/thread2-r0drv-solaris.c \
2275 r0drv/solaris/threadctxhooks-r0drv-solaris.c \
2276 r0drv/solaris/time-r0drv-solaris.c \
2277 r0drv/solaris/timer-r0drv-solaris.c
2278
2279RuntimeR0Drv_SOURCES.haiku = \
2280 common/misc/thread.cpp \
2281 common/string/memchr.asm \
2282 common/string/memmove.asm \
2283 common/string/strpbrk.cpp \
2284 common/string/memcmp.asm \
2285 common/string/strchr.asm \
2286 generic/RTAssertShouldPanic-generic.cpp \
2287 generic/RTTimerCreate-generic.cpp \
2288 generic/mppresent-generic.cpp \
2289 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
2290 r0drv/generic/mpnotification-r0drv-generic.cpp \
2291 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2292 r0drv/haiku/alloc-r0drv-haiku.c \
2293 r0drv/haiku/assert-r0drv-haiku.c \
2294 r0drv/haiku/initterm-r0drv-haiku.c \
2295 r0drv/haiku/memobj-r0drv-haiku.c \
2296 r0drv/haiku/mp-r0drv-haiku.c \
2297 r0drv/haiku/process-r0drv-haiku.c \
2298 r0drv/haiku/RTLogWriteDebugger-r0drv-haiku.c \
2299 r0drv/haiku/RTLogWriteStdOut-r0drv-haiku.c \
2300 r0drv/haiku/semevent-r0drv-haiku.c \
2301 r0drv/haiku/semeventmulti-r0drv-haiku.c \
2302 r0drv/haiku/semfastmutex-r0drv-haiku.c \
2303 r0drv/haiku/semmutex-r0drv-haiku.c \
2304 r0drv/haiku/spinlock-r0drv-haiku.c \
2305 r0drv/haiku/thread-r0drv-haiku.c \
2306 r0drv/haiku/thread2-r0drv-haiku.c \
2307 r0drv/haiku/time-r0drv-haiku.c \
2308 generic/timer-generic.cpp \
2309 r0drv/memobj-r0drv.cpp \
2310 r0drv/powernotification-r0drv.c
2311
2312## PORTME: Porters create and add their selection of platform specific Ring-0 Driver files here.
2313
2314RuntimeR0Drv_ORDERDEPS.freebsd = \
2315 $(PATH_STAGE)/gen-sys-hdrs/bus_if.h \
2316 $(PATH_STAGE)/gen-sys-hdrs/device_if.h
2317
2318
2319#
2320# RuntimeGuestR0 - Guest driver runtime.
2321# This is almost the same as the RuntimeR0Drv, the main difference
2322# is in the backdoor logging and the lack of sup.h (which should be
2323# made irrelevant even for RuntimeR0Drv).
2324#
2325RuntimeGuestR0_TEMPLATE := VBOXGUESTR0LIB
2326RuntimeGuestR0_EXTENDS = RuntimeR0Drv
2327RuntimeGuestR0_SOURCES := $(filter-out generic/RTLogWriteUser-generic.cpp, $(RuntimeR0Drv_SOURCES))
2328RuntimeGuestR0_SOURCES += \
2329 VBox/logbackdoor.cpp
2330RuntimeGuestR0_SOURCES.win := \
2331 $(filter-out common/checksum/md% common/checksum/sha%, $(RuntimeR0Drv_SOURCES.win))
2332
2333
2334#
2335# RuntimeGuestR0NT4 - Win32 NT4 guest driver runtime.
2336#
2337RuntimeGuestR0NT4_EXTENDS = RuntimeGuestR0
2338RuntimeGuestR0NT4_EXTENDS_BY = appending
2339RuntimeGuestR0NT4_DEFS = IPRT_TARGET_NT4
2340
2341
2342ifdef VBOX_WITH_RAW_MODE
2343 #
2344 # RuntimeRC - Raw-mode context library.
2345 #
2346 RuntimeRC_TEMPLATE = VBoxRc
2347 RuntimeRC_DEFS = IN_RT_RC RT_WITH_VBOX
2348 RuntimeRC_INCS = include
2349 RuntimeRC_SOURCES := \
2350 common/checksum/alt-md5.cpp \
2351 common/checksum/crc32.cpp \
2352 common/checksum/crc64.cpp \
2353 common/log/log.cpp \
2354 common/log/logellipsis.cpp \
2355 common/log/logrel.cpp \
2356 common/log/logrelellipsis.cpp \
2357 common/log/logcom.cpp \
2358 common/log/logformat.cpp \
2359 common/log/tracebuf.cpp \
2360 common/log/tracedefault.cpp \
2361 common/misc/RTAssertMsg1Weak.cpp \
2362 common/misc/RTAssertMsg2.cpp \
2363 common/misc/RTAssertMsg2Add.cpp \
2364 common/misc/RTAssertMsg2AddWeak.cpp \
2365 common/misc/RTAssertMsg2AddWeakV.cpp \
2366 common/misc/RTAssertMsg2Weak.cpp \
2367 common/misc/RTAssertMsg2WeakV.cpp \
2368 common/misc/assert.cpp \
2369 common/misc/buildconfig.cpp \
2370 common/misc/sanity-c.c \
2371 common/misc/sanity-cpp.cpp \
2372 common/path/RTPathFilename.cpp \
2373 common/string/strformat.cpp \
2374 common/string/strformatnum.cpp \
2375 common/string/strformatrt.cpp \
2376 common/string/strformattype.cpp \
2377 common/string/strncmp.cpp \
2378 common/string/strpbrk.cpp \
2379 common/string/strprintf.cpp \
2380 common/string/RTStrCopy.cpp \
2381 common/string/RTStrCopyEx.cpp \
2382 common/table/avllu32.cpp \
2383 common/table/avlou32.cpp \
2384 common/table/avlogcphys.cpp \
2385 common/table/avlogcptr.cpp \
2386 common/table/avlohcphys.cpp \
2387 common/table/avloioport.cpp \
2388 common/table/avlrogcphys.cpp \
2389 common/table/avlrogcptr.cpp \
2390 common/table/avlroioport.cpp \
2391 common/table/avlroogcptr.cpp \
2392 common/table/avlu32.cpp \
2393 common/time/timeprog.cpp \
2394 common/time/timesup.cpp \
2395 gc/initterm-gc.cpp \
2396 generic/RTAssertShouldPanic-generic.cpp \
2397 generic/errvars-generic.cpp \
2398 \
2399 $(RuntimeNoCrt_SOURCES)
2400
2401 #if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
2402 # RuntimeRC_SOURCES += common/time/timesupA.asm
2403 #else
2404 RuntimeRC_SOURCES += common/time/timesupref.cpp
2405 #endif
2406
2407 RuntimeRC_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
2408
2409 ifeq ($(VBOX_LDR_FMT32),lx)
2410 RuntimeRC_SOURCES += os2/sys0.asm
2411 endif
2412
2413 if1of ($(KBUILD_TARGET), darwin solaris freebsd)
2414 RuntimeRC_SOURCES += \
2415 common/math/gcc/adddi3.c \
2416 common/math/gcc/anddi3.c \
2417 common/math/gcc/ashldi3.c \
2418 common/math/gcc/ashrdi3.c \
2419 common/math/gcc/cmpdi2.c \
2420 common/math/gcc/divdi3.c \
2421 common/math/gcc/iordi3.c \
2422 common/math/gcc/lshldi3.c \
2423 common/math/gcc/lshrdi3.c \
2424 common/math/gcc/moddi3.c \
2425 common/math/gcc/muldi3.c \
2426 common/math/gcc/negdi2.c \
2427 common/math/gcc/notdi2.c \
2428 common/math/gcc/qdivrem.c \
2429 common/math/gcc/subdi3.c \
2430 common/math/gcc/ucmpdi2.c \
2431 common/math/gcc/udivdi3.c \
2432 common/math/gcc/umoddi3.c \
2433 common/math/gcc/xordi3.c
2434 endif
2435
2436
2437 #
2438 # RuntimeRCStub - Raw-mode context startup stub for Windows.
2439 #
2440 RuntimeRCStub_TEMPLATE = VBoxRc
2441 RuntimeRCStub_SOURCES.win = \
2442 nt/NtProcessStartup-stub.cpp
2443
2444
2445endif # VBOX_WITH_RAW_MODE
2446
2447
2448#
2449# Static library for new & delete for the electric fence.
2450#
2451RuntimeEFCPP_TEMPLATE := $(VBoxRT_TEMPLATE)
2452RuntimeEFCPP_SDKS := $(RuntimeR3_SDKS)
2453RuntimeEFCPP_SDKS.$(KBUILD_TARGET) := $(RuntimeR3_SDKS.$(KBUILD_TARGET))
2454RuntimeEFCPP_DEFS := $(RuntimeR3_DEFS)
2455RuntimeEFCPP_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
2456RuntimeEFCPP_INCS := $(RuntimeR3_INCS)
2457RuntimeEFCPP_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
2458RuntimeEFCPP_SOURCES := r3/alloc-ef-cpp.cpp
2459
2460
2461
2462#
2463# The NTDLL mini import library.
2464#
2465# Note! The reason for doing this is to avoid importing CRT symbols from the
2466# NTDLL. We do not wish to do this because:
2467# - Our compiler is usually a different one and we should use the
2468# matching CRT,
2469# - Older versions of NTDLL may not sport all the exports our w2k3 or
2470# later WINDDK ntdll.lib have and thus we may easily end up with
2471# images that does not load on older windows versions.
2472#
2473if1of (win,$(KBUILD_TARGET) $(KBUILD_HOST))
2474RuntimeR3NtDll-amd64_TEMPLATE = VBoxR3Dll
2475RuntimeR3NtDll-amd64_BLD_TRG_ARCH = amd64
2476RuntimeR3NtDll-amd64_ARFLAGS = /NODEFAULTLIB /MACHINE:amd64
2477RuntimeR3NtDll-amd64_SOURCES = \
2478 r3/win/ntdll-mini-implib.def
2479
2480RuntimeR3NtDll-x86_TEMPLATE = VBoxR3Dll
2481RuntimeR3NtDll-x86_BLD_TRG_ARCH = x86
2482RuntimeR3NtDll-x86_ARFLAGS = /NODEFAULTLIB /MACHINE:x86
2483RuntimeR3NtDll-x86_SOURCES = \
2484 r3/win/ntdll-mini-implib.def \
2485 $(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm
2486RuntimeR3NtDll-x86_CLEAN = \
2487 $(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm
2488
2489$$(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm: $(PATH_SUB_CURRENT)/r3/win/ntdll-mini-implib.def | $$(dir $$@)
2490 $(call MSG_GENERATE,,$@,$<)
2491 $(QUIET)$(APPEND) -nt "$@" \
2492 ';Autogenerated, do not edit' \
2493 '%include "iprt/asmdefs.mac"' \
2494 'BEGINCODE' \
2495 '%macro IMPLIB_EXPORT 1' \
2496 'global %1:function' \
2497 '%1: nop' \
2498 '%endm' \
2499 ''
2500 $(QUIET)$(SED) -e '1,/EXPORTS/d' \
2501 -e 's/^.*;;=[[:space:]]*\([^[:space:]]*\)[[:space:]]*$$/IMPLIB_EXPORT \1/' \
2502 $< --append $@
2503endif
2504
2505#
2506# Bag of tricks required for making VCC100 output binaries work on NT4, W2K
2507# early XP and early W2K3.
2508#
2509RuntimeR3VccTricks_TEMPLATE = VBoxR3Dll
2510RuntimeR3VccTricks_SOURCES = \
2511 r3/win/vcc100-kernel32-fakes.cpp \
2512 r3/win/vcc100-kernel32-fakesA.asm
2513
2514
2515#
2516# errmsg.cpp depends on a generated header.
2517#
2518common/err/errmsg.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgdata.h
2519common/err/errmsg.cpp_INCS = $(IPRT_OUT_DIR)
2520
2521win/errmsgwin.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgcomdata.h
2522win/errmsgwin.cpp_INCS = $(IPRT_OUT_DIR)
2523
2524# Our COM errors only for R3 libraries on the host
2525define def_errmsgwin_deps
2526 $(lib)_win/errmsgwin.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
2527 $(lib)_common/err/errmsgxpcom.cpp_INCS = $(IPRT_OUT_DIR)
2528 $(lib)_common/err/errmsgxpcom.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
2529endef
2530$(foreach lib,RuntimeR3 RuntimeBldProg VBoxRT VBoxRT-x86,$(eval $(def_errmsgwin_deps)))
2531
2532
2533#
2534# Generate the status code data.
2535#
2536$(IPRT_OUT_DIR)/errmsgdata.h: \
2537 $(VBOX_PATH_RUNTIME_SRC)/common/err/errmsg.sed \
2538 $(PATH_ROOT)/include/iprt/err.h \
2539 $(PATH_ROOT)/include/VBox/err.h \
2540 | $$(dir $$@)
2541 $(call MSG_GENERATE,,$@,$(filter %.h,$^))
2542 $(QUIET)$(REDIRECT) -wo $@ -- $(SED) -f $< $(filter %.h,$^)
2543
2544## @todo r=bird: rename this to indicate that it's not only COM errors, but all win32/64 errors.
2545$(IPRT_OUT_DIR)/errmsgcomdata.h: \
2546 $(VBOX_PATH_RUNTIME_SRC)/common/err/errmsgcom.sed \
2547 $$(PATH_SDK_$(VBOX_WINPSDK)_INC)/WinError.h \
2548 | $$(dir $$@)
2549 $(call MSG_GENERATE,,$@,$(filter %.h,$^))
2550 $(QUIET)$(REDIRECT) -wo $@ -- $(SED) -f $< $(filter %.h,$^)
2551
2552$(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts +| $(IPRT_OUT_DIR)/errmsgvboxcomdata.h: \
2553 $(VBOX_PATH_RUNTIME_SRC)/VBox/errmsgvboxcom.xsl \
2554 $(VBOX_XIDL_FILE_SRC) \
2555 | $$(dir $$@)
2556 $(call MSG_GENERATE,,$@,$(filter %.xidl,$^))
2557 $(QUIET)$(VBOX_XSLTPROC) -o $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts $< $(filter %.xidl,$^)
2558 $(QUIET)$(CP) --changed -fv $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
2559
2560
2561if "$(KBUILD_TARGET)" == "freebsd"
2562#
2563# FreeBSDGeneratedKernelHeaders - Generate some kernel interface headers.
2564#
2565# These are used by:
2566# - The RTMp* API in IPRT.
2567# - VBoxGuest
2568#
2569# Note! We cannot give a output path to the awk program, it will always
2570# generate the header next to the source. So, we'll have to temporarily copy
2571# the source file to the destination directory to work.
2572#
2573VBOX_AWK := /usr/bin/awk
2574INSTALLS += FreeBSDGeneratedKernelHeaders
2575FreeBSDGeneratedKernelHeaders_INST = gen-sys-hdrs/
2576FreeBSDGeneratedKernelHeaders_SOURCES = \
2577 $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/bus_if.h \
2578 $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/device_if.h \
2579 $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/pci_if.h
2580FreeBSDGeneratedKernelHeaders_CLEAN = $(FreeBSDGeneratedKernelHeaders_SOURCES)
2581
2582$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/bus_if.h: $(VBOX_FREEBSD_SRC)/kern/bus_if.m | $$(dir $$@)
2583 $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
2584 $(QUIET)$(CP) -f $< $(@D)/bus_if.m
2585 $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/bus_if.m -h -p
2586 $(QUIET)$(RM) $(@D)/bus_if.m
2587
2588$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/device_if.h: $(VBOX_FREEBSD_SRC)/kern/device_if.m | $$(dir $$@)
2589 $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
2590 $(QUIET)$(CP) -f $< $(@D)/device_if.m
2591 $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/device_if.m -h -p
2592 $(QUIET)$(RM) $(@D)/device_if.m
2593
2594$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/pci_if.h: $(VBOX_FREEBSD_SRC)/dev/pci/pci_if.m | $$(dir $$@)
2595 $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
2596 $(QUIET)$(CP) -f $< $(@D)/pci_if.m
2597 $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/pci_if.m -h -p
2598 $(QUIET)$(RM) $(@D)/pci_if.m
2599endif # FreeBSD
2600
2601
2602#
2603# Aliases for .cpp.h files so we can more easily do syntax checking from the editor.
2604#
2605ldrELFRelocatable.cpp.o: ldrELF.o
2606ldrELFRelocatable.cpp.obj: ldrELF.obj
2607
2608
2609#
2610# Doxygen documentation.
2611#
2612IPRT_DOXYFILE_INPUT_DIRS = \
2613 $(PATH_ROOT)/include/iprt \
2614 $(PATH_ROOT)/include/iprt/cpp \
2615 $(PATH_ROOT)/include/iprt/linux \
2616 $(PATH_ROOT)/include/iprt/nocrt \
2617 $(PATH_ROOT)/include/iprt/nocrt/x86 \
2618 $(PATH_ROOT)/include/iprt/nocrt/amd64 \
2619 $(PATH_ROOT)/include/iprt/nocrt/compiler \
2620 $(VBOX_PATH_RUNTIME_SRC)/include/internal \
2621 $(VBOX_PATH_RUNTIME_SRC)/common/alloc \
2622 $(VBOX_PATH_RUNTIME_SRC)/common/asm \
2623 $(VBOX_PATH_RUNTIME_SRC)/common/checksum \
2624 $(VBOX_PATH_RUNTIME_SRC)/common/dbg \
2625 $(VBOX_PATH_RUNTIME_SRC)/common/err \
2626 $(VBOX_PATH_RUNTIME_SRC)/common/ldr \
2627 $(VBOX_PATH_RUNTIME_SRC)/common/log \
2628 $(VBOX_PATH_RUNTIME_SRC)/common/math \
2629 $(VBOX_PATH_RUNTIME_SRC)/common/math/amd64 \
2630 $(VBOX_PATH_RUNTIME_SRC)/common/math/gcc \
2631 $(VBOX_PATH_RUNTIME_SRC)/common/math/x86 \
2632 $(VBOX_PATH_RUNTIME_SRC)/common/misc \
2633 $(VBOX_PATH_RUNTIME_SRC)/common/path \
2634 $(VBOX_PATH_RUNTIME_SRC)/common/rand \
2635 $(VBOX_PATH_RUNTIME_SRC)/common/string \
2636 $(VBOX_PATH_RUNTIME_SRC)/common/table \
2637 $(VBOX_PATH_RUNTIME_SRC)/common/time \
2638 $(VBOX_PATH_RUNTIME_SRC)/VBox \
2639 $(foreach dir, $(VBOX_PATH_RUNTIME_SRC) $(VBOX_PATH_RUNTIME_SRC)/r3 $(VBOX_PATH_RUNTIME_SRC)/r0drv,\
2640 $(dir) \
2641 $(dir)/darwin \
2642 $(dir)/haiku \
2643 $(dir)/linux \
2644 $(dir)/nt \
2645 $(dir)/os2 \
2646 $(dir)/solaris \
2647 $(dir)/win \
2648 $(dir)/win32 \
2649 $(dir)/win64 \
2650 $(dir)/generic \
2651 )
2652
2653# These must come first in order to make things look nice.
2654IPRT_DOXYFILE_INPUT_FIRST =\
2655 $(PATH_ROOT)/include/iprt/cdefs.h \
2656 $(PATH_ROOT)/include/iprt/types.h \
2657 $(PATH_ROOT)/include/iprt/runtime.h \
2658 $(PATH_ROOT)/include/iprt/param.h \
2659 $(PATH_ROOT)/include/iprt/assert.h \
2660 $(PATH_ROOT)/include/iprt/asm.h \
2661
2662IPRT_DOXYFILE_INPUT := \
2663 $(filter-out %.cpp.h, $(sort $(wildcard $(addsuffix /*.h, $(IPRT_DOXYFILE_INPUT_DIRS)))) ) \
2664 $(foreach dir, $(IPRT_DOXYFILE_INPUT_DIRS), $(wildcard $(dir)/*.cpp $(dir)/.c $(dir)/.asm))
2665IPRT_DOXYFILE_INPUT := \
2666 $(IPRT_DOXYFILE_INPUT_FIRST) \
2667 $(filter-out $(IPRT_DOXYFILE_INPUT_FIRST), $(IPRT_DOXYFILE_INPUT))
2668
2669
2670IPRT_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/iprt
2671BLDDIRS += $(IPRT_DOXYFILE_OUTPUT)
2672
2673includedep $(IPRT_OUT_DIR)/Doxyfile.iprt.dep
2674
2675# Generate the Doxyfile
2676$(IPRT_OUT_DIR)/Doxyfile.iprt: \
2677 $(VBOX_PATH_RUNTIME_SRC)/Doxyfile \
2678 $(VBOX_PATH_RUNTIME_SRC)/Makefile.kmk \
2679 $(comp-vars IPRT_DOXYFILE_INPUT,DOXYGEN_INPUT_PREV,FORCE) \
2680 $(comp-vars IPRT_DOXYFILE_OUTPUT,DOXYGEN_OUTPUT_PREV,FORCE) \
2681 | $$(dir $$@)
2682 $(RM) -f $@ [email protected] [email protected]
2683 $(CP) -f $(VBOX_PATH_RUNTIME_SRC)/Doxyfile [email protected]
2684 $(APPEND) [email protected]
2685 $(APPEND) [email protected] "OUTPUT_DIRECTORY = $(IPRT_DOXYFILE_OUTPUT)"
2686 $(APPEND) [email protected] "WARN_LOGFILE = $(IPRT_DOXYFILE_OUTPUT)/errors"
2687 $(APPEND) [email protected] "INCLUDE_PATH = $(PATH_ROOT)/include include . common/table"
2688 $(APPEND) [email protected] "INCLUDE_FILE_PATTERNS = *.cpp.h"
2689 $(APPEND) [email protected] "PREDEFINED += $(ARCH_BITS_DEFS)"
2690 $(APPEND) [email protected]
2691 $(APPEND) [email protected] "INPUT = $(IPRT_DOXYFILE_INPUT)"
2692 $(APPEND) [email protected]
2693 $(MV) -f [email protected] $@
2694 @$(APPEND) [email protected] "DOXYGEN_OUTPUT_PREV = $(IPRT_DOXYFILE_OUTPUT)"
2695 @$(APPEND) [email protected] "DOXYGEN_INPUT_PREV = $(IPRT_DOXYFILE_INPUT)"
2696
2697# Do the actual job.
2698$(IPRT_OUT_DIR)/docs.iprt: $(IPRT_OUT_DIR)/Doxyfile.iprt $$(IPRT_DOXYFILE_INPUT) | $(IPRT_DOXYFILE_OUTPUT)/
2699 $(RM) -f $(wildcard $(IPRT_DOXYFILE_OUTPUT)/html/*) $(IPRT_OUT_DIR)/docs.iprt
2700 doxygen $(IPRT_OUT_DIR)/Doxyfile.iprt
2701 $(APPEND) $(IPRT_OUT_DIR)/docs.iprt
2702
2703# aliases
2704docs.iprt: $(IPRT_OUT_DIR)/docs.iprt
2705if !defined(VBOX_ONLY_DOCS) && defined(VBOX_WITH_ALL_DOXYGEN_TARGETS)
2706docs: $(IPRT_OUT_DIR)/docs.iprt
2707endif
2708
2709test-doxygen::
2710 @echo test-$(comp-vars IPRT_DOXYFILE_OUTPUT,DOXYGEN_OUTPUT_PREV,FORCE)
2711 @echo $(IPRT_DOXYFILE_OUTPUT)
2712 @echo $(DOXYGEN_OUTPUT_PREV)
2713 @echo $(IPRT_DOXYFILE_INPUT)
2714
2715
2716#
2717# Test mangling.
2718#
2719if1of ($(LIBRARIES),RuntimeR3 RuntimeR0 RuntimeR0Drv RuntimeRC)
2720 test-mangling:: $(IPRT_OUT_DIR)/mangling.run
2721 OTHERS += $(IPRT_OUT_DIR)/mangling.run
2722 CLEANS += $(IPRT_OUT_DIR)/mangling.run
2723 $(IPRT_OUT_DIR)/mangling.run: \
2724 $$(RuntimeR3_1_TARGET) \
2725 $$(RuntimeR0_1_TARGET) \
2726 $$(RuntimeR0Drv_1_TARGET) \
2727 $$(RuntimeRC_1_TARGET)
2728 if1of ($(KBUILD_TARGET), win os2)
2729 $(call MSG_L1,IPRT: skipped mangling test.)
2730 else
2731# Generate a SED script from mangling.h that checks for known symbols.
2732 $(QUIET)$(SED) \
2733 -e '/# *define.*RT_MANGLER/!d' \
2734 -e 's/^.*RT_MANGLER(\([^)][^)]*\)).*$(DOLLAR)/\/^\1$(DOLLAR)\/b ok/' \
2735 $(PATH_ROOT)/include/iprt/mangling.h \
2736 --output "$@"
2737 $(QUIET)$(APPEND) -n '$@' \
2738 ':bad' \
2739 's/^\(.*\)$(DOLLAR)/error: Missing # define \1 /' \
2740 ':bad-pad' \
2741 '/^.\{0,70\}$(DOLLAR)/ { s/$(DOLLAR)/ /; bbad-pad; }' \
2742 's/define \([^ ]*\) \([ ]*\)$(DOLLAR)/define \1 \2RT_MANGLER(\1)/' \
2743 'p' \
2744 $(if-expr !defined(IPRT_IGNORE_TEST_MANGLING),'q 1') \
2745 '' \
2746 ':ok' \
2747 'd'
2748# Find the best way to generate a symbol list and subject it to mangling.h.
2749 if $(intersects $(KBUILD_TARGET), linux) && "$(VBOX_GCC_fvisibility-hidden)"
2750 $(call MSG_L1,IPRT: Testing mangling and visiblity for newer gcc...)
2751 $(QUIET)readelf -Ws $^ \
2752 | $(SED) \
2753 -e 's/[[:space:]]\+/ /g' \
2754 -e '/^ *[[:digit:]]\+:/!d' \
2755 -e 's/^ \+[[:digit:]]\+: \+[[:xdigit:]]\+ \+[[:digit:]]\+ \+//' \
2756 -e '/^SECTION/d' \
2757 -e '/^FILE/d' \
2758 -e 's/^[[:alpha:]]\+ \+//' \
2759 -e '/LOCAL/d' \
2760 -e 's/^[[:alpha:]]\+ \+//' \
2761 -e '/^HIDDEN [[:xdigit:]]\+ RT/bkeep-hidden' \
2762 -e '/^HIDDEN [[:xdigit:]]\+ g_[a-z0-9]*RT/bkeep-hidden' \
2763 -e '/^HIDDEN/d' \
2764 -e ':keep-hidden' \
2765 -e 's/^[[:alpha:]]\+ \+//' \
2766 -e '/^UND/d' \
2767 -e 's/^[[:digit:]]\+ \+//' \
2768 \
2769 -e '/^nocrt_/d' \
2770 -e '/^memchr/d' \
2771 -e '/^memcmp/d' \
2772 -e '/^memcpy/d' \
2773 -e '/^mempcpy/d' \
2774 -e '/^memmove/d' \
2775 -e '/^memset/d' \
2776 -e '/^strchr/d' \
2777 -e '/^strpbrk/d' \
2778 -e '/^_Z7strpbrk/d' \
2779 -e '/^strcmp/d' \
2780 -e '/^strcpy/d' \
2781 -e '/^strncpy/d' \
2782 -e '/^strlen/d' \
2783 -e '/^_Z[[:alpha:]]*[[:digit:]]\+RTC/d' \
2784 -e '/^_Z[[:alpha:]]*[[:digit:]]\+RTC/d' \
2785 \
2786 -e '/^_ZnwjPv/d' \
2787 -e '/^_ZnwmPv/d' \
2788 -e '/^_ZNSt9bad_allocC1Ev/d' \
2789 -e '/^_ZNSt9exceptionC2Ev/d' \
2790 -e '/^_ZNSt9exceptionC[12]ERKS_/d' \
2791 \
2792 -e '/^_ZN[a-zA-Z]*St[[:digit:]]*_*[lL]ist/d' \
2793 -e '/^_ZN[a-zA-Z]*[[:digit:]]*__gnu_cxx/d' \
2794 -e '/^_ZNSa.*ElementNode.*/d' \
2795 -e '/^_ZSt.*ElementNode.*/d' \
2796 \
2797 -e '/^_Z[[:digit:]]\+dbus/d' \
2798 -e '/^_Z13RTDBusLoadLibv/d' \
2799 \
2800 -e '/^VBoxHost_/d'\
2801 -e '/^VBoxGuest_/d'\
2802 | $(SED) -nf "$@"
2803 endif
2804 $(call MSG_L1,IPRT: Testing mangling using nm...)
2805 $(QUIET)nm $^ 2> /dev/null \
2806 | $(SED) -n \
2807 -e 's/^[0-9a-f][0-9a-f]* //' \
2808 -e '/^[TUDB] /!d' \
2809 -e 's/^. //' \
2810 $(if-expr "$(KBUILD_TARGET)" == "darwin" || "$(KBUILD_TARGET)" == "os2" || "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.x86", \
2811 -e 's/^_//',) \
2812 \
2813 -e '/^g_cchrt/d'\
2814 -e '/^g_frt/d'\
2815 -e '/^g_offrt/d'\
2816 -e '/^g_pfnrt/d'\
2817 -e '/^g_rt/d'\
2818 -e '/^g_szrt/d'\
2819 -e '/^g_ProcessSelf/d'\
2820 -e '/^g_u64ProgramStart/d'\
2821 -e '/^g_enmProcessPriority/d'\
2822 -e '/^g_hDbgModStrCache/d'\
2823 -e '/^g_pfnR0Darwin/d'\
2824 -e '/^g_pDarwinLockGroup/d'\
2825 \
2826 -e '/^RTDBusLoadLib/d' \
2827 \
2828 -e '/^RT/p' \
2829 -e '/^g_/p' \
2830 | $(SED) -nf "$@"
2831 endif
2832endif
2833 $(QUIET)$(APPEND) -t $@
2834
2835if !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_VALIDATIONKIT) && !defined(VBOX_ONLY_DOCS)
2836#
2837# Windows build tool.
2838#
2839BLDPROGS.win += ntBldSymDb
2840ntBldSymDb_TEMPLATE = VBoxAdvBldProg
2841ntBldSymDb_INCS = .
2842ntBldSymDb_SOURCES = r0drv/nt/ntBldSymDb.cpp
2843endif
2844
2845#
2846# Generate the rules (we're the to sub-makefile).
2847#
2848include $(FILE_KBUILD_SUB_FOOTER)
2849
2850
2851#
2852# Aliases for code templates.
2853#
2854rsa-template.o rsa-template.obj: rsa-core.o rsa-asn1-decoder.o rsa-sanity.o rsa-init.o
2855spc-template.o spc-template.obj: spc-core.o spc-asn1-decoder.o spc-sanity.o spc-init.o
2856taf-template.o taf-template.obj: taf-core.o taf-asn1-decoder.o taf-sanity.o taf-init.o
2857x509-template.o x509-template.obj: x509-core.o x509-asn1-decoder.o x509-sanity.o x509-init.o
2858pkcs7-template.o pkcs7-template.obj: pkcs7-core.o pkcs7-asn1-decoder.o pkcs7-sanity.o pkcs7-init.o
2859
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette