Files
gcc/libphobos/libdruntime/Makefile.am
Iain Buclaw 8e84a14291 d: Update language attribute support, and implement gcc.attributes
D attribute support has been updated to have a baseline parity with the
LLVM D compiler's own `ldc.attributes'.

The handler that extracts GCC attributes from a list of UDAs has been
improved to take care of some mistakes that could have been warnings.
UDAs attached to field variables are also now processed for any GCC
attributes attached to them.

The following new attributes have been added to the D front-end:

 - @attribute("alloc_size")
 - @attribute("used")
 - @attribute("optimize")
 - @attribute("restrict")
 - @attribute("cold")
 - @attribute("noplt")
 - @attribute("target_clones")
 - @attribute("no_icf")
 - @attribute("noipa")
 - @attribute("symver")

With convenience aliases in a new `gcc.attributes' module to match
the same naming convention as `ldc.attributes':

 - @allocSize()
 - @assumeUsed
 - @fastmath
 - @naked
 - @restrict
 - @cold
 - @noplt
 - @optStrategy()
 - @polly
 - @section()
 - @target()
 - @weak

The old gcc.attribute module has been deprecated, along with the removal
of the following attribute handlers:

 - @attribute("alias"): Has been superseded by `pragma(mangle)'.
 - @attribute("forceinline"): Renamed to always_inline.

gcc/d/ChangeLog:

	* d-attribs.cc: Include fold-const.h and opts.h.
	(attr_noreturn_exclusions): Add alloc_size.
	(attr_const_pure_exclusions): Likewise.
	(attr_inline_exclusions): Add target_clones.
	(attr_noinline_exclusions): Rename forceinline to always_inline.
	(attr_target_exclusions): New array.
	(attr_target_clones_exclusions): New array.
	(attr_alloc_exclusions): New array.
	(attr_cold_hot_exclusions): New array.
	(d_langhook_common_attribute_table): Add new D attribute handlers.
	(build_attributes): Update to look for gcc.attributes.  Issue warning
	if not given a struct literal.  Handle void initialized arguments.
	(handle_always_inline_attribute): Remove function.
	(d_handle_noinline_attribute): Don't extract TYPE_LANG_FRONTEND.
	(d_handle_forceinline_attribute): Rename to...
	(d_handle_always_inline_attribute): ...this.  Remove special handling.
	(d_handle_flatten_attribute): Don't extract TYPE_LANG_FRONTEND.
	(d_handle_target_attribute): Likewise.  Warn about empty arguments.
	(d_handle_target_clones_attribute): New function.
	(optimize_args): New static variable.
	(parse_optimize_options): New function.
	(d_handle_optimize_attribute): New function.
	(d_handle_noclone_attribute): Don't extract TYPE_LANG_FRONTEND.
	(d_handle_alias_attribute): Remove function.
	(d_handle_noicf_attribute): New function.
	(d_handle_noipa_attribute): New function.
	(d_handle_section_attribute): Call the handle_generic_attribute target
	hook after performing target independent processing.
	(d_handle_symver_attribute): New function.
	(d_handle_noplt_attribute): New function.
	(positional_argument): New function.
	(d_handle_alloc_size_attribute): New function.
	(d_handle_cold_attribute): New function.
	(d_handle_restrict_attribute): New function.
	(d_handle_used_attribute): New function.
	* decl.cc (gcc_attribute_p): Update to look for gcc.attributes.
	(get_symbol_decl): Update decl source location of old prototypes to
	the new declaration being merged.
	* types.cc (layout_aggregate_members): Apply user defined attributes
	on fields.

libphobos/ChangeLog:

	* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Add
	  gcc/attributes.d.
	* libdruntime/Makefile.in: Regenerate.
	* libdruntime/gcc/attribute.d: Deprecate module, publicly import
	gcc.attributes.
	* libdruntime/gcc/deh.d: Update imports.
	* libdruntime/gcc/attributes.d: New file.

gcc/testsuite/ChangeLog:

	* gdc.dg/gdc108.d: Update test.
	* gdc.dg/gdc142.d: Likewise.
	* gdc.dg/pr90136a.d: Likewise.
	* gdc.dg/pr90136b.d: Likewise.
	* gdc.dg/pr90136c.d: Likewise.
	* gdc.dg/pr95173.d: Likewise.
	* gdc.dg/attr_allocsize1.d: New test.
	* gdc.dg/attr_allocsize2.d: New test.
	* gdc.dg/attr_alwaysinline1.d: New test.
	* gdc.dg/attr_cold1.d: New test.
	* gdc.dg/attr_exclusions1.d: New test.
	* gdc.dg/attr_exclusions2.d: New test.
	* gdc.dg/attr_flatten1.d: New test.
	* gdc.dg/attr_module.d: New test.
	* gdc.dg/attr_noclone1.d: New test.
	* gdc.dg/attr_noicf1.d: New test.
	* gdc.dg/attr_noinline1.d: New test.
	* gdc.dg/attr_noipa1.d: New test.
	* gdc.dg/attr_noplt1.d: New test.
	* gdc.dg/attr_optimize1.d: New test.
	* gdc.dg/attr_optimize2.d: New test.
	* gdc.dg/attr_optimize3.d: New test.
	* gdc.dg/attr_optimize4.d: New test.
	* gdc.dg/attr_restrict1.d: New test.
	* gdc.dg/attr_section1.d: New test.
	* gdc.dg/attr_symver1.d: New test.
	* gdc.dg/attr_target1.d: New test.
	* gdc.dg/attr_targetclones1.d: New test.
	* gdc.dg/attr_used1.d: New test.
	* gdc.dg/attr_used2.d: New test.
	* gdc.dg/attr_weak1.d: New test.
	* gdc.dg/imports/attributes.d: New test.
2021-04-08 15:30:47 +02:00

406 lines
18 KiB
Makefile

# Makefile for the D runtime library.
# Copyright (C) 2012-2021 Free Software Foundation, Inc.
#
# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
# Include D build rules
include $(top_srcdir)/d_rules.am
# Make sure GDC can find libdruntime include files
D_EXTRA_DFLAGS=-nostdinc -I $(srcdir) -I .
# D flags for compilation
AM_DFLAGS= \
$(phobos_lt_pic_flag) $(phobos_compiler_shared_flag) \
$(WARN_DFLAGS) $(CHECKING_DFLAGS) $(CET_DFLAGS)
# Flags for other kinds of sources
AM_CFLAGS=$(CET_FLAGS)
AM_CCASFLAGS=$(CET_FLAGS)
# Install all D and DI files
ALL_DRUNTIME_INSTALL_DSOURCES = $(DRUNTIME_DSOURCES) \
$(DRUNTIME_DSOURCES_BIONIC) $(DRUNTIME_DSOURCES_DARWIN) \
$(DRUNTIME_DSOURCES_DRAGONFLYBSD) $(DRUNTIME_DSOURCES_FREEBSD) \
$(DRUNTIME_DSOURCES_LINUX) $(DRUNTIME_DSOURCES_NETBSD) \
$(DRUNTIME_DSOURCES_OPENBSD) $(DRUNTIME_DSOURCES_POSIX) \
$(DRUNTIME_DSOURCES_SOLARIS) $(DRUNTIME_DSOURCES_WINDOWS) \
$(DRUNTIME_DSOURCES_GENERATED) $(DRUNTIME_DISOURCES) \
$(DRUNTIME_DSOURCES_STDCXX)
# Setup source files depending on configure
DRUNTIME_SOURCES_CONFIGURED =
# OS specific sources
if DRUNTIME_OS_POSIX
DRUNTIME_SOURCES_CONFIGURED += $(DRUNTIME_DSOURCES_POSIX)
endif
if DRUNTIME_OS_DARWIN
DRUNTIME_SOURCES_CONFIGURED += $(DRUNTIME_DSOURCES_DARWIN)
endif
if DRUNTIME_OS_DRAGONFLYBSD
DRUNTIME_SOURCES_CONFIGURED += $(DRUNTIME_DSOURCES_DRAGONFLYBSD)
endif
if DRUNTIME_OS_ANDROID
DRUNTIME_SOURCES_CONFIGURED += $(DRUNTIME_DSOURCES_BIONIC)
endif
if DRUNTIME_OS_FREEBSD
DRUNTIME_SOURCES_CONFIGURED += $(DRUNTIME_DSOURCES_FREEBSD)
endif
if DRUNTIME_OS_NETBSD
DRUNTIME_SOURCES_CONFIGURED += $(DRUNTIME_DSOURCES_NETBSD)
endif
if DRUNTIME_OS_OPENBSD
DRUNTIME_SOURCES_CONFIGURED += $(DRUNTIME_DSOURCES_OPENBSD)
endif
if DRUNTIME_OS_LINUX
DRUNTIME_SOURCES_CONFIGURED += $(DRUNTIME_DSOURCES_LINUX)
endif
if DRUNTIME_OS_MINGW
DRUNTIME_SOURCES_CONFIGURED += $(DRUNTIME_DSOURCES_WINDOWS)
endif
if DRUNTIME_OS_SOLARIS
DRUNTIME_SOURCES_CONFIGURED += $(DRUNTIME_DSOURCES_SOLARIS)
endif
# CPU specific sources
if DRUNTIME_CPU_AARCH64
DRUNTIME_SOURCES_CONFIGURED += config/aarch64/switchcontext.S
endif
if DRUNTIME_CPU_ARM
DRUNTIME_SOURCES_CONFIGURED += config/arm/switchcontext.S
endif
if DRUNTIME_CPU_MIPS
DRUNTIME_SOURCES_CONFIGURED += config/mips/switchcontext.S
endif
if DRUNTIME_CPU_POWERPC
DRUNTIME_SOURCES_CONFIGURED += config/powerpc/switchcontext.S
endif
if DRUNTIME_CPU_X86
if DRUNTIME_OS_MINGW
DRUNTIME_SOURCES_CONFIGURED += config/mingw/switchcontext.S
else
DRUNTIME_SOURCES_CONFIGURED += config/x86/switchcontext.S
endif
endif
if DRUNTIME_CPU_SYSTEMZ
DRUNTIME_SOURCES_CONFIGURED += config/systemz/get_tls_offset.S
endif
if DRUNTIME_CPU_S390
DRUNTIME_SOURCES_CONFIGURED += config/s390/get_tls_offset.S
endif
# Provide __start_minfo, __stop_minfo if linker doesn't.
if !DRUNTIME_OS_MINFO_BRACKETING
DRTSTUFF = gcc/drtbegin.o gcc/drtend.o
toolexeclib_DATA = $(DRTSTUFF)
gcc/drtbegin.o: gcc/drtstuff.c
$(COMPILE) -DDRT_BEGIN -c -o $@ $<
gcc/drtend.o: gcc/drtstuff.c
$(COMPILE) -DDRT_END -c -o $@ $<
endif
# Generated by configure
DRUNTIME_DSOURCES_GENERATED = gcc/config.d gcc/libbacktrace.d
ALL_DRUNTIME_SOURCES = $(DRUNTIME_DSOURCES) $(DRUNTIME_CSOURCES) \
$(DRUNTIME_SOURCES_CONFIGURED) $(DRUNTIME_DSOURCES_GENERATED)
# Need this library to both be part of libgphobos.a, and installed separately.
# 1) separate libgdruntime.la
toolexeclib_LTLIBRARIES = libgdruntime.la
libgdruntime_la_SOURCES = $(ALL_DRUNTIME_SOURCES)
libgdruntime_la_LIBTOOLFLAGS =
libgdruntime_la_LDFLAGS = -Wc,-nophoboslib,-dstartfiles,-B../src,-Bgcc \
-version-info $(libtool_VERSION)
libgdruntime_la_LIBADD = $(LIBATOMIC) $(LIBBACKTRACE)
libgdruntime_la_DEPENDENCIES = $(DRTSTUFF)
# Also override library link commands: This is not strictly
# required, but we want to record additional dependencies such
# as pthread in the library
libgdruntime_la_LINK = $(LIBTOOL) --tag=D $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(GDC) $(AM_CFLAGS) $(CFLAGS) \
$(libgdruntime_la_LDFLAGS) $(LDFLAGS) -o $@
# 2) integrated libgdruntime_convenience.la that is to be part of libgphobos.a
noinst_LTLIBRARIES = libgdruntime_convenience.la
libgdruntime_convenience_la_SOURCES = $(libgdruntime_la_SOURCES)
libgdruntime_convenience_la_LIBTOOLFLAGS = $(libgdruntime_la_LIBTOOLFLAGS)
libgdruntime_convenience_la_LDFLAGS = $(libgdruntime_la_LDFLAGS)
libgdruntime_convenience_la_LIBADD = $(libgdruntime_la_LIBADD)
libgdruntime_convenience_la_DEPENDENCIES = $(libgdruntime_la_DEPENDENCIES)
libgdruntime_convenience_la_LINK = $(libgdruntime_la_LINK)
# Handles generated files as well
install-data-local:
for file in $(ALL_DRUNTIME_INSTALL_DSOURCES); do \
$(MKDIR_P) `dirname $(DESTDIR)$(gdc_include_dir)/$$file` ; \
if test -f $$file; then \
$(INSTALL_HEADER) $$file $(DESTDIR)$(gdc_include_dir)/$$file ; \
else \
$(INSTALL_HEADER) $(srcdir)/$$file \
$(DESTDIR)$(gdc_include_dir)/$$file ; \
fi ; \
done
# Source file definitions. Boring stuff, auto-generated with
# https://gist.github.com/jpf91/8ad1dbc9902d6ad876313f134c6527d1
# Can't use wildcards here:
# https://www.gnu.org/software/automake/manual/html_node/Wildcards.html
DRUNTIME_CSOURCES = core/stdc/errno_.c
DRUNTIME_DSOURCES = core/atomic.d core/attribute.d core/bitop.d \
core/checkedint.d core/cpuid.d core/demangle.d core/exception.d \
core/internal/abort.d core/internal/arrayop.d \
core/internal/attributes.d core/internal/convert.d \
core/internal/hash.d core/internal/spinlock.d core/internal/string.d \
core/internal/traits.d core/math.d core/memory.d core/runtime.d \
core/simd.d core/stdc/assert_.d core/stdc/complex.d core/stdc/config.d \
core/stdc/ctype.d core/stdc/errno.d core/stdc/fenv.d \
core/stdc/float_.d core/stdc/inttypes.d core/stdc/limits.d \
core/stdc/locale.d core/stdc/math.d core/stdc/signal.d \
core/stdc/stdarg.d core/stdc/stddef.d core/stdc/stdint.d \
core/stdc/stdio.d core/stdc/stdlib.d core/stdc/string.d \
core/stdc/tgmath.d core/stdc/time.d core/stdc/wchar_.d \
core/stdc/wctype.d core/sync/barrier.d core/sync/condition.d \
core/sync/config.d core/sync/exception.d core/sync/mutex.d \
core/sync/rwmutex.d core/sync/semaphore.d core/thread/context.d \
core/thread/fiber.d core/thread/osthread.d core/thread/package.d \
core/thread/threadbase.d core/thread/threadgroup.d core/thread/types.d \
core/time.d core/vararg.d core/volatile.d gc/bits.d gc/config.d \
gc/gcinterface.d gc/impl/conservative/gc.d gc/impl/manual/gc.d gc/os.d \
gc/pooltable.d gc/proxy.d gcc/attribute.d gcc/attributes.d \
gcc/backtrace.d gcc/builtins.d gcc/deh.d gcc/emutls.d gcc/gthread.d \
gcc/sections/android.d gcc/sections/elf_shared.d gcc/sections/osx.d \
gcc/sections/package.d gcc/sections/win32.d gcc/sections/win64.d \
gcc/unwind/arm.d gcc/unwind/arm_common.d gcc/unwind/c6x.d \
gcc/unwind/generic.d gcc/unwind/package.d gcc/unwind/pe.d object.d \
rt/aApply.d rt/aApplyR.d rt/aaA.d rt/adi.d rt/arrayassign.d \
rt/arraycast.d rt/arraycat.d rt/cast_.d rt/config.d rt/critical_.d \
rt/deh.d rt/dmain2.d rt/invariant.d rt/lifetime.d rt/memory.d \
rt/minfo.d rt/monitor_.d rt/obj.d rt/qsort.d rt/sections.d \
rt/switch_.d rt/tlsgc.d rt/util/array.d rt/util/container/array.d \
rt/util/container/common.d rt/util/container/hashtab.d \
rt/util/container/treap.d rt/util/random.d rt/util/typeinfo.d \
rt/util/utf.d
DRUNTIME_DSOURCES_STDCXX = core/stdcpp/exception.d \
core/stdcpp/typeinfo.d
DRUNTIME_DSOURCES_BIONIC = core/sys/bionic/err.d \
core/sys/bionic/fcntl.d core/sys/bionic/stdlib.d \
core/sys/bionic/string.d core/sys/bionic/unistd.d
DRUNTIME_DSOURCES_DARWIN = core/sys/darwin/crt_externs.d \
core/sys/darwin/dlfcn.d core/sys/darwin/err.d \
core/sys/darwin/execinfo.d core/sys/darwin/fcntl.d \
core/sys/darwin/ifaddrs.d core/sys/darwin/mach/dyld.d \
core/sys/darwin/mach/getsect.d core/sys/darwin/mach/kern_return.d \
core/sys/darwin/mach/loader.d core/sys/darwin/mach/nlist.d \
core/sys/darwin/mach/port.d core/sys/darwin/mach/semaphore.d \
core/sys/darwin/mach/stab.d core/sys/darwin/mach/thread_act.d \
core/sys/darwin/netinet/in_.d core/sys/darwin/pthread.d \
core/sys/darwin/stdlib.d core/sys/darwin/string.d \
core/sys/darwin/sys/attr.d core/sys/darwin/sys/cdefs.d \
core/sys/darwin/sys/event.d core/sys/darwin/sys/mman.d \
core/sys/darwin/sys/sysctl.d
DRUNTIME_DSOURCES_DRAGONFLYBSD = core/sys/dragonflybsd/dlfcn.d \
core/sys/dragonflybsd/err.d core/sys/dragonflybsd/execinfo.d \
core/sys/dragonflybsd/netinet/in_.d core/sys/dragonflybsd/pthread_np.d \
core/sys/dragonflybsd/stdlib.d core/sys/dragonflybsd/string.d \
core/sys/dragonflybsd/sys/_bitset.d \
core/sys/dragonflybsd/sys/_cpuset.d core/sys/dragonflybsd/sys/cdefs.d \
core/sys/dragonflybsd/sys/elf.d core/sys/dragonflybsd/sys/elf32.d \
core/sys/dragonflybsd/sys/elf64.d \
core/sys/dragonflybsd/sys/elf_common.d \
core/sys/dragonflybsd/sys/event.d core/sys/dragonflybsd/sys/link_elf.d \
core/sys/dragonflybsd/sys/mman.d core/sys/dragonflybsd/sys/socket.d \
core/sys/dragonflybsd/sys/sysctl.d core/sys/dragonflybsd/time.d
DRUNTIME_DSOURCES_FREEBSD = core/sys/freebsd/config.d \
core/sys/freebsd/dlfcn.d core/sys/freebsd/err.d \
core/sys/freebsd/execinfo.d core/sys/freebsd/netinet/in_.d \
core/sys/freebsd/pthread_np.d core/sys/freebsd/stdlib.d \
core/sys/freebsd/string.d core/sys/freebsd/sys/_bitset.d \
core/sys/freebsd/sys/_cpuset.d core/sys/freebsd/sys/cdefs.d \
core/sys/freebsd/sys/elf.d core/sys/freebsd/sys/elf32.d \
core/sys/freebsd/sys/elf64.d core/sys/freebsd/sys/elf_common.d \
core/sys/freebsd/sys/event.d core/sys/freebsd/sys/link_elf.d \
core/sys/freebsd/sys/mman.d core/sys/freebsd/sys/mount.d \
core/sys/freebsd/sys/sysctl.d core/sys/freebsd/time.d \
core/sys/freebsd/unistd.d
DRUNTIME_DSOURCES_LINUX = core/sys/linux/config.d \
core/sys/linux/dlfcn.d core/sys/linux/elf.d core/sys/linux/epoll.d \
core/sys/linux/err.d core/sys/linux/errno.d core/sys/linux/execinfo.d \
core/sys/linux/fcntl.d core/sys/linux/ifaddrs.d core/sys/linux/link.d \
core/sys/linux/netinet/in_.d core/sys/linux/netinet/tcp.d \
core/sys/linux/sched.d core/sys/linux/stdio.d core/sys/linux/string.d \
core/sys/linux/sys/auxv.d core/sys/linux/sys/eventfd.d \
core/sys/linux/sys/file.d core/sys/linux/sys/inotify.d \
core/sys/linux/sys/mman.d core/sys/linux/sys/prctl.d \
core/sys/linux/sys/signalfd.d core/sys/linux/sys/socket.d \
core/sys/linux/sys/sysinfo.d core/sys/linux/sys/time.d \
core/sys/linux/sys/xattr.d core/sys/linux/termios.d \
core/sys/linux/time.d core/sys/linux/timerfd.d core/sys/linux/tipc.d \
core/sys/linux/unistd.d
DRUNTIME_DSOURCES_NETBSD = core/sys/netbsd/dlfcn.d \
core/sys/netbsd/err.d core/sys/netbsd/execinfo.d \
core/sys/netbsd/stdlib.d core/sys/netbsd/string.d \
core/sys/netbsd/sys/elf.d core/sys/netbsd/sys/elf32.d \
core/sys/netbsd/sys/elf64.d core/sys/netbsd/sys/elf_common.d \
core/sys/netbsd/sys/event.d core/sys/netbsd/sys/featuretest.d \
core/sys/netbsd/sys/link_elf.d core/sys/netbsd/sys/mman.d \
core/sys/netbsd/sys/sysctl.d core/sys/netbsd/time.d
DRUNTIME_DSOURCES_OPENBSD = core/sys/openbsd/dlfcn.d \
core/sys/openbsd/err.d core/sys/openbsd/stdlib.d \
core/sys/openbsd/string.d core/sys/openbsd/sys/cdefs.d \
core/sys/openbsd/sys/elf.d core/sys/openbsd/sys/elf32.d \
core/sys/openbsd/sys/elf64.d core/sys/openbsd/sys/elf_common.d \
core/sys/openbsd/sys/link_elf.d core/sys/openbsd/sys/mman.d \
core/sys/openbsd/sys/sysctl.d core/sys/openbsd/time.d \
core/sys/openbsd/unistd.d
DRUNTIME_DSOURCES_POSIX = core/sys/posix/aio.d \
core/sys/posix/arpa/inet.d core/sys/posix/config.d \
core/sys/posix/dirent.d core/sys/posix/dlfcn.d core/sys/posix/fcntl.d \
core/sys/posix/grp.d core/sys/posix/iconv.d core/sys/posix/inttypes.d \
core/sys/posix/libgen.d core/sys/posix/locale.d \
core/sys/posix/mqueue.d core/sys/posix/net/if_.d \
core/sys/posix/netdb.d core/sys/posix/netinet/in_.d \
core/sys/posix/netinet/tcp.d core/sys/posix/poll.d \
core/sys/posix/pthread.d core/sys/posix/pwd.d core/sys/posix/sched.d \
core/sys/posix/semaphore.d core/sys/posix/setjmp.d \
core/sys/posix/signal.d core/sys/posix/spawn.d \
core/sys/posix/stdc/time.d core/sys/posix/stdio.d \
core/sys/posix/stdlib.d core/sys/posix/string.d \
core/sys/posix/strings.d core/sys/posix/sys/filio.d \
core/sys/posix/sys/ioccom.d core/sys/posix/sys/ioctl.d \
core/sys/posix/sys/ipc.d core/sys/posix/sys/mman.d \
core/sys/posix/sys/msg.d core/sys/posix/sys/resource.d \
core/sys/posix/sys/select.d core/sys/posix/sys/shm.d \
core/sys/posix/sys/socket.d core/sys/posix/sys/stat.d \
core/sys/posix/sys/statvfs.d core/sys/posix/sys/time.d \
core/sys/posix/sys/ttycom.d core/sys/posix/sys/types.d \
core/sys/posix/sys/uio.d core/sys/posix/sys/un.d \
core/sys/posix/sys/utsname.d core/sys/posix/sys/wait.d \
core/sys/posix/syslog.d core/sys/posix/termios.d core/sys/posix/time.d \
core/sys/posix/ucontext.d core/sys/posix/unistd.d \
core/sys/posix/utime.d
DRUNTIME_DSOURCES_SOLARIS = core/sys/solaris/dlfcn.d \
core/sys/solaris/elf.d core/sys/solaris/err.d \
core/sys/solaris/execinfo.d core/sys/solaris/libelf.d \
core/sys/solaris/link.d core/sys/solaris/stdlib.d \
core/sys/solaris/sys/elf.d core/sys/solaris/sys/elf_386.d \
core/sys/solaris/sys/elf_SPARC.d core/sys/solaris/sys/elf_amd64.d \
core/sys/solaris/sys/elf_notes.d core/sys/solaris/sys/elftypes.d \
core/sys/solaris/sys/link.d core/sys/solaris/sys/priocntl.d \
core/sys/solaris/sys/procset.d core/sys/solaris/sys/types.d \
core/sys/solaris/time.d
DRUNTIME_DSOURCES_WINDOWS = core/sys/windows/accctrl.d \
core/sys/windows/aclapi.d core/sys/windows/aclui.d \
core/sys/windows/basetsd.d core/sys/windows/basetyps.d \
core/sys/windows/cderr.d core/sys/windows/cguid.d \
core/sys/windows/com.d core/sys/windows/comcat.d \
core/sys/windows/commctrl.d core/sys/windows/commdlg.d \
core/sys/windows/core.d core/sys/windows/cpl.d \
core/sys/windows/cplext.d core/sys/windows/custcntl.d \
core/sys/windows/dbghelp.d core/sys/windows/dbghelp_types.d \
core/sys/windows/dbt.d core/sys/windows/dde.d core/sys/windows/ddeml.d \
core/sys/windows/dhcpcsdk.d core/sys/windows/dlgs.d \
core/sys/windows/dll.d core/sys/windows/docobj.d \
core/sys/windows/errorrep.d core/sys/windows/exdisp.d \
core/sys/windows/exdispid.d core/sys/windows/httpext.d \
core/sys/windows/idispids.d core/sys/windows/imagehlp.d \
core/sys/windows/imm.d core/sys/windows/intshcut.d \
core/sys/windows/ipexport.d core/sys/windows/iphlpapi.d \
core/sys/windows/ipifcons.d core/sys/windows/iprtrmib.d \
core/sys/windows/iptypes.d core/sys/windows/isguids.d \
core/sys/windows/lm.d core/sys/windows/lmaccess.d \
core/sys/windows/lmalert.d core/sys/windows/lmapibuf.d \
core/sys/windows/lmat.d core/sys/windows/lmaudit.d \
core/sys/windows/lmbrowsr.d core/sys/windows/lmchdev.d \
core/sys/windows/lmconfig.d core/sys/windows/lmcons.d \
core/sys/windows/lmerr.d core/sys/windows/lmerrlog.d \
core/sys/windows/lmmsg.d core/sys/windows/lmremutl.d \
core/sys/windows/lmrepl.d core/sys/windows/lmserver.d \
core/sys/windows/lmshare.d core/sys/windows/lmsname.d \
core/sys/windows/lmstats.d core/sys/windows/lmsvc.d \
core/sys/windows/lmuse.d core/sys/windows/lmuseflg.d \
core/sys/windows/lmwksta.d core/sys/windows/lzexpand.d \
core/sys/windows/mapi.d core/sys/windows/mciavi.d \
core/sys/windows/mcx.d core/sys/windows/mgmtapi.d \
core/sys/windows/mmsystem.d core/sys/windows/msacm.d \
core/sys/windows/mshtml.d core/sys/windows/mswsock.d \
core/sys/windows/nb30.d core/sys/windows/nddeapi.d \
core/sys/windows/nspapi.d core/sys/windows/ntdef.d \
core/sys/windows/ntdll.d core/sys/windows/ntldap.d \
core/sys/windows/ntsecapi.d core/sys/windows/ntsecpkg.d \
core/sys/windows/oaidl.d core/sys/windows/objbase.d \
core/sys/windows/objfwd.d core/sys/windows/objidl.d \
core/sys/windows/objsafe.d core/sys/windows/ocidl.d \
core/sys/windows/odbcinst.d core/sys/windows/ole.d \
core/sys/windows/ole2.d core/sys/windows/ole2ver.d \
core/sys/windows/oleacc.d core/sys/windows/oleauto.d \
core/sys/windows/olectl.d core/sys/windows/olectlid.d \
core/sys/windows/oledlg.d core/sys/windows/oleidl.d \
core/sys/windows/pbt.d core/sys/windows/powrprof.d \
core/sys/windows/prsht.d core/sys/windows/psapi.d \
core/sys/windows/rapi.d core/sys/windows/ras.d \
core/sys/windows/rasdlg.d core/sys/windows/raserror.d \
core/sys/windows/rassapi.d core/sys/windows/reason.d \
core/sys/windows/regstr.d core/sys/windows/richedit.d \
core/sys/windows/richole.d core/sys/windows/rpc.d \
core/sys/windows/rpcdce.d core/sys/windows/rpcdce2.d \
core/sys/windows/rpcdcep.d core/sys/windows/rpcndr.d \
core/sys/windows/rpcnsi.d core/sys/windows/rpcnsip.d \
core/sys/windows/rpcnterr.d core/sys/windows/schannel.d \
core/sys/windows/sdkddkver.d core/sys/windows/secext.d \
core/sys/windows/security.d core/sys/windows/servprov.d \
core/sys/windows/setupapi.d core/sys/windows/shellapi.d \
core/sys/windows/shldisp.d core/sys/windows/shlguid.d \
core/sys/windows/shlobj.d core/sys/windows/shlwapi.d \
core/sys/windows/snmp.d core/sys/windows/sql.d \
core/sys/windows/sqlext.d core/sys/windows/sqltypes.d \
core/sys/windows/sqlucode.d core/sys/windows/sspi.d \
core/sys/windows/stacktrace.d core/sys/windows/stat.d \
core/sys/windows/stdc/malloc.d core/sys/windows/stdc/time.d \
core/sys/windows/subauth.d core/sys/windows/threadaux.d \
core/sys/windows/tlhelp32.d core/sys/windows/tmschema.d \
core/sys/windows/unknwn.d core/sys/windows/uuid.d \
core/sys/windows/vfw.d core/sys/windows/w32api.d \
core/sys/windows/winbase.d core/sys/windows/winber.d \
core/sys/windows/wincon.d core/sys/windows/wincrypt.d \
core/sys/windows/windef.d core/sys/windows/windows.d \
core/sys/windows/winerror.d core/sys/windows/wingdi.d \
core/sys/windows/winhttp.d core/sys/windows/wininet.d \
core/sys/windows/winioctl.d core/sys/windows/winldap.d \
core/sys/windows/winnetwk.d core/sys/windows/winnls.d \
core/sys/windows/winnt.d core/sys/windows/winperf.d \
core/sys/windows/winreg.d core/sys/windows/winsock2.d \
core/sys/windows/winspool.d core/sys/windows/winsvc.d \
core/sys/windows/winuser.d core/sys/windows/winver.d \
core/sys/windows/wtsapi32.d core/sys/windows/wtypes.d
DRUNTIME_DISOURCES = __entrypoint.di __main.di