diff --git a/mak/COPY b/mak/COPY index 9e0664a4c6..c3d65a07d3 100644 --- a/mak/COPY +++ b/mak/COPY @@ -67,10 +67,13 @@ COPY=\ \ $(IMPDIR)\core\sync\event.d \ \ + $(IMPDIR)\core\sys\bionic\string.d \ + \ $(IMPDIR)\core\sys\darwin\crt_externs.d \ $(IMPDIR)\core\sys\darwin\dlfcn.d \ $(IMPDIR)\core\sys\darwin\execinfo.d \ $(IMPDIR)\core\sys\darwin\pthread.d \ + $(IMPDIR)\core\sys\darwin\string.d \ \ $(IMPDIR)\core\sys\darwin\mach\dyld.d \ $(IMPDIR)\core\sys\darwin\mach\getsect.d \ @@ -92,6 +95,7 @@ COPY=\ $(IMPDIR)\core\sys\freebsd\netinet\in_.d \ \ $(IMPDIR)\core\sys\freebsd\pthread_np.d \ + $(IMPDIR)\core\sys\freebsd\string.d \ $(IMPDIR)\core\sys\freebsd\sys\_bitset.d \ $(IMPDIR)\core\sys\freebsd\sys\_cpuset.d \ $(IMPDIR)\core\sys\freebsd\sys\cdefs.d \ @@ -112,6 +116,7 @@ COPY=\ $(IMPDIR)\core\sys\dragonflybsd\netinet\in_.d \ \ $(IMPDIR)\core\sys\dragonflybsd\pthread_np.d \ + $(IMPDIR)\core\sys\dragonflybsd\string.d \ $(IMPDIR)\core\sys\dragonflybsd\sys\_bitset.d \ $(IMPDIR)\core\sys\dragonflybsd\sys\_cpuset.d \ $(IMPDIR)\core\sys\dragonflybsd\sys\cdefs.d \ @@ -134,6 +139,7 @@ COPY=\ $(IMPDIR)\core\sys\linux\ifaddrs.d \ $(IMPDIR)\core\sys\linux\link.d \ $(IMPDIR)\core\sys\linux\sched.d \ + $(IMPDIR)\core\sys\linux\string.d \ $(IMPDIR)\core\sys\linux\termios.d \ $(IMPDIR)\core\sys\linux\time.d \ $(IMPDIR)\core\sys\linux\timerfd.d \ @@ -156,7 +162,11 @@ COPY=\ $(IMPDIR)\core\sys\linux\sys\time.d \ $(IMPDIR)\core\sys\linux\sys\prctl.d \ \ + $(IMPDIR)\core\sys\netbsd\sys\featuretest.d \ + $(IMPDIR)\core\sys\netbsd\string.d \ + \ $(IMPDIR)\core\sys\openbsd\dlfcn.d \ + $(IMPDIR)\core\sys\openbsd\string.d \ \ $(IMPDIR)\core\sys\posix\arpa\inet.d \ $(IMPDIR)\core\sys\posix\aio.d \ diff --git a/mak/SRCS b/mak/SRCS index 3489bbc174..782dbf33ba 100644 --- a/mak/SRCS +++ b/mak/SRCS @@ -73,10 +73,13 @@ SRCS=\ src\core\sync\rwmutex.d \ src\core\sync\semaphore.d \ \ + src\core\sys\bionic\string.d \ + \ src\core\sys\darwin\crt_externs.d \ src\core\sys\darwin\dlfcn.d \ src\core\sys\darwin\execinfo.d \ src\core\sys\darwin\pthread.d \ + src\core\sys\darwin\string.d \ src\core\sys\darwin\mach\dyld.d \ src\core\sys\darwin\mach\getsect.d \ src\core\sys\darwin\mach\kern_return.d \ @@ -94,6 +97,7 @@ SRCS=\ src\core\sys\freebsd\execinfo.d \ src\core\sys\freebsd\netinet\in_.d \ src\core\sys\freebsd\pthread_np.d \ + src\core\sys\freebsd\string.d \ src\core\sys\freebsd\sys\_bitset.d \ src\core\sys\freebsd\sys\_cpuset.d \ src\core\sys\freebsd\sys\cdefs.d \ @@ -112,6 +116,7 @@ SRCS=\ src\core\sys\dragonflybsd\execinfo.d \ src\core\sys\dragonflybsd\netinet\in_.d \ src\core\sys\dragonflybsd\pthread_np.d \ + src\core\sys\dragonflybsd\string.d \ src\core\sys\dragonflybsd\sys\_bitset.d \ src\core\sys\dragonflybsd\sys\_cpuset.d \ src\core\sys\dragonflybsd\sys\cdefs.d \ @@ -134,6 +139,7 @@ SRCS=\ src\core\sys\linux\ifaddrs.d \ src\core\sys\linux\link.d \ src\core\sys\linux\sched.d \ + src\core\sys\linux\string.d \ src\core\sys\linux\termios.d \ src\core\sys\linux\time.d \ src\core\sys\linux\timerfd.d \ @@ -156,7 +162,11 @@ SRCS=\ src\core\sys\linux\sys\time.d \ src\core\sys\linux\sys\prctl.d \ \ + src\core\sys\netbsd\sys\featuretest.d \ + src\core\sys\netbsd\string.d \ + \ src\core\sys\openbsd\dlfcn.d \ + src\core\sys\openbsd\string.d \ \ src\core\sys\posix\arpa\inet.d \ src\core\sys\posix\aio.d \ diff --git a/mak/WINDOWS b/mak/WINDOWS index d75f9c19ad..aa81456d16 100644 --- a/mak/WINDOWS +++ b/mak/WINDOWS @@ -34,6 +34,7 @@ copydir: $(IMPDIR) mkdir $(IMPDIR)\core\stdc mkdir $(IMPDIR)\core\stdcpp mkdir $(IMPDIR)\core\internal + mkdir $(IMPDIR)\core\sys\bionic mkdir $(IMPDIR)\core\sys\darwin\mach mkdir $(IMPDIR)\core\sys\darwin\netinet mkdir $(IMPDIR)\core\sys\darwin\sys @@ -44,6 +45,8 @@ copydir: $(IMPDIR) mkdir $(IMPDIR)\core\sys\linux\netinet mkdir $(IMPDIR)\core\sys\linux\sys mkdir $(IMPDIR)\core\sys\linux\sys\netinet + mkdir src\core\sys\netbsd\sys + mkdir src\core\sys\netbsd\ mkdir $(IMPDIR)\core\sys\openbsd mkdir $(IMPDIR)\core\sys\posix\arpa mkdir $(IMPDIR)\core\sys\posix\net @@ -239,6 +242,9 @@ $(IMPDIR)\core\stdcpp\type_traits.d : src\core\stdcpp\type_traits.d $(IMPDIR)\core\stdcpp\xutility.d : src\core\stdcpp\xutility.d copy $** $@ +$(IMPDIR)\core\sys\bionic\string.d : src\core\sys\bionic\string.d + copy $** $@ + $(IMPDIR)\core\sys\darwin\crt_externs.d : src\core\sys\darwin\crt_externs.d copy $** $@ @@ -251,6 +257,9 @@ $(IMPDIR)\core\sys\darwin\execinfo.d : src\core\sys\darwin\execinfo.d $(IMPDIR)\core\sys\darwin\pthread.d : src\core\sys\darwin\pthread.d copy $** $@ +$(IMPDIR)\core\sys\darwin\string.d : src\core\sys\darwin\string.d + copy $** $@ + $(IMPDIR)\core\sys\darwin\mach\dyld.d : src\core\sys\darwin\mach\dyld.d copy $** $@ @@ -293,6 +302,9 @@ $(IMPDIR)\core\sys\freebsd\execinfo.d : src\core\sys\freebsd\execinfo.d $(IMPDIR)\core\sys\freebsd\pthread_np.d : src\core\sys\freebsd\pthread_np.d copy $** $@ +$(IMPDIR)\core\sys\freebsd\string.d : src\core\sys\freebsd\string.d + copy $** $@ + $(IMPDIR)\core\sys\freebsd\time.d : src\core\sys\freebsd\time.d copy $** $@ @@ -344,6 +356,9 @@ $(IMPDIR)\core\sys\dragonflybsd\execinfo.d : src\core\sys\dragonflybsd\execinfo. $(IMPDIR)\core\sys\dragonflybsd\pthread_np.d : src\core\sys\dragonflybsd\pthread_np.d copy $** $@ +$(IMPDIR)\core\sys\dragonflybsd\string.d : src\core\sys\dragonflybsd\string.d + copy $** $@ + $(IMPDIR)\core\sys\dragonflybsd\time.d : src\core\sys\dragonflybsd\time.d copy $** $@ @@ -410,6 +425,9 @@ $(IMPDIR)\core\sys\linux\link.d : src\core\sys\linux\link.d $(IMPDIR)\core\sys\linux\sched.d : src\core\sys\linux\sched.d copy $** $@ +$(IMPDIR)\core\sys\linux\string.d : src\core\sys\linux\string.d + copy $** $@ + $(IMPDIR)\core\sys\linux\termios.d : src\core\sys\linux\termios.d copy $** $@ @@ -467,9 +485,18 @@ $(IMPDIR)\core\sys\linux\sys\xattr.d : src\core\sys\linux\sys\xattr.d $(IMPDIR)\core\sys\linux\sys\time.d : src\core\sys\linux\sys\time.d copy $** $@ +$(IMPDIR)\core\sys\netbsd\sys\featuretest.d : src\core\sys\netbsd\sys\featuretest.d + copy $** $@ + +$(IMPDIR)\core\sys\netbsd\string.d : src\core\sys\netbsd\string.d + copy $** $@ + $(IMPDIR)\core\sys\openbsd\dlfcn.d : src\core\sys\openbsd\dlfcn.d copy $** $@ +$(IMPDIR)\core\sys\openbsd\string.d : src\core\sys\openbsd\string.d + copy $** $@ + $(IMPDIR)\core\sys\posix\arpa\inet.d : src\core\sys\posix\arpa\inet.d copy $** $@ diff --git a/src/core/sys/bionic/string.d b/src/core/sys/bionic/string.d new file mode 100644 index 0000000000..cbee06c4ef --- /dev/null +++ b/src/core/sys/bionic/string.d @@ -0,0 +1,17 @@ +/** + * D header file for Bionic string. + * + * Copyright: Copyright © 2019, The D Language Foundation + * License: Boost License 1.0. + * Authors: Ernesto Castellotti + */ +module core.sys.bionic.string; + +public import core.stdc.string; + +version (CRuntime_Bionic): +extern (C): +nothrow: +@nogc: + +pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen); diff --git a/src/core/sys/darwin/string.d b/src/core/sys/darwin/string.d new file mode 100644 index 0000000000..bd65fde27b --- /dev/null +++ b/src/core/sys/darwin/string.d @@ -0,0 +1,31 @@ +/** + * D header file for Darwin string. + * + * Copyright: Copyright © 2019, The D Language Foundation + * License: Boost License 1.0. + * Authors: Ernesto Castellotti + */ +module core.sys.darwin.string; + +public import core.stdc.string; +import core.sys.darwin.sys.cdefs; + +version (OSX) + version = Darwin; +else version (iOS) + version = Darwin; +else version (TVOS) + version = Darwin; +else version (WatchOS) + version = Darwin; + +version (Darwin): +extern (C): +nothrow: +@nogc: + +static if (__DARWIN_C_LEVEL >= __DARWIN_C_FULL) +{ + // ^ __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); + pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen); +} diff --git a/src/core/sys/dragonflybsd/string.d b/src/core/sys/dragonflybsd/string.d new file mode 100644 index 0000000000..b64178f656 --- /dev/null +++ b/src/core/sys/dragonflybsd/string.d @@ -0,0 +1,22 @@ +/** + * D header file for DragonFlyBSD string. + * + * Copyright: Copyright © 2019, The D Language Foundation + * License: Boost License 1.0. + * Authors: Ernesto Castellotti + */ +module core.sys.dragonflybsd.string; + +public import core.stdc.string; +import core.sys.dragonflybsd.sys.cdefs; + +version (DragonFlyBSD): +extern (C): +nothrow: +@nogc: + +static if (__BSD_VISIBLE) +{ + pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen); +} + diff --git a/src/core/sys/freebsd/string.d b/src/core/sys/freebsd/string.d new file mode 100644 index 0000000000..3602ea8e86 --- /dev/null +++ b/src/core/sys/freebsd/string.d @@ -0,0 +1,21 @@ +/** + * D header file for FreeBSD string. + * + * Copyright: Copyright © 2019, The D Language Foundation + * License: Boost License 1.0. + * Authors: Ernesto Castellotti + */ +module core.sys.freebsd.string; + +public import core.stdc.string; +import core.sys.freebsd.sys.cdefs; + +version (FreeBSD): +extern (C): +nothrow: +@nogc: + +static if (__BSD_VISIBLE) +{ + pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen); +} diff --git a/src/core/sys/linux/string.d b/src/core/sys/linux/string.d new file mode 100644 index 0000000000..a388c8ba1a --- /dev/null +++ b/src/core/sys/linux/string.d @@ -0,0 +1,21 @@ +/** + * D header file for Linux string. + * + * Copyright: Copyright © 2019, The D Language Foundation + * License: Boost License 1.0. + * Authors: Ernesto Castellotti + */ +module core.sys.linux.string; + +public import core.stdc.string; +import core.sys.linux.config; + +version (linux): +extern (C): +nothrow: +@nogc: + +static if (__USE_GNU) +{ + pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen); +} diff --git a/src/core/sys/netbsd/string.d b/src/core/sys/netbsd/string.d new file mode 100644 index 0000000000..ab9ced80cf --- /dev/null +++ b/src/core/sys/netbsd/string.d @@ -0,0 +1,21 @@ +/** + * D header file for NetBSD string. + * + * Copyright: Copyright © 2019, The D Language Foundation + * License: Boost License 1.0. + * Authors: Ernesto Castellotti + */ +module core.sys.netbsd.string; + +public import core.stdc.string; +import core.sys.netbsd.sys.featuretest; + +version (NetBSD): +extern (C): +nothrow: +@nogc: + +static if (_NETBSD_SOURCE) +{ + pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen); +} diff --git a/src/core/sys/netbsd/sys/featuretest.d b/src/core/sys/netbsd/sys/featuretest.d new file mode 100644 index 0000000000..3901ea9703 --- /dev/null +++ b/src/core/sys/netbsd/sys/featuretest.d @@ -0,0 +1,12 @@ +/** + * D header file for NetBSD featuretest;. + * + * Copyright: Copyright © 2019, The D Language Foundation + * License: Boost License 1.0. + * Authors: Ernesto Castellotti + */ +module core.sys.netbsd.sys.featuretest; + +version (NetBSD): + +enum _NETBSD_SOURCE = true; diff --git a/src/core/sys/openbsd/string.d b/src/core/sys/openbsd/string.d new file mode 100644 index 0000000000..8d35b9c9c1 --- /dev/null +++ b/src/core/sys/openbsd/string.d @@ -0,0 +1,21 @@ +/** + * D header file for OpenBSD string. + * + * Copyright: Copyright © 2019, The D Language Foundation + * License: Boost License 1.0. + * Authors: Ernesto Castellotti + */ +module core.sys.openbsd.string; + +public import core.stdc.string; +import core.sys.openbsd.sys.cdefs; + +version (OpenBSD): +extern (C): +nothrow: +@nogc: + +static if (__BSD_VISIBLE) +{ + pure void* memmem(return const void* haystack, size_t haystacklen, scope const void* needle, size_t needlelen); +}