Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/cygwin.yml3
-rw-r--r--winsup/cygwin/Makefile.am4
-rw-r--r--winsup/doc/faq-programming.xml3
-rw-r--r--winsup/testsuite/Makefile.am25
4 files changed, 30 insertions, 5 deletions
diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml
index 575ff1fdc..248a3e4cd 100644
--- a/.github/workflows/cygwin.yml
+++ b/.github/workflows/cygwin.yml
@@ -71,6 +71,7 @@ jobs:
packages: >-
autoconf,
automake,
+ busybox,
cocom,
dblatex,
dejagnu,
@@ -116,6 +117,6 @@ jobs:
export PATH=/usr/bin:$(cygpath ${SYSTEMROOT})/system32 &&
export MAKEFLAGS=-j$(nproc) &&
cd build &&
- (export PATH=${{ matrix.target }}/winsup/testsuite/runtime:${PATH} && cmd /c $(cygpath -wa ${{ matrix.target }}/winsup/cygserver/cygserver) &) &&
+ (export PATH=${{ matrix.target }}/winsup/testsuite/testinst/bin:${PATH} && cmd /c $(cygpath -wa ${{ matrix.target }}/winsup/cygserver/cygserver) &) &&
(cd ${{ matrix.target }}/winsup; make check || true)
shell: C:\cygwin\bin\bash.exe --noprofile --norc -eo pipefail '{0}'
diff --git a/winsup/cygwin/Makefile.am b/winsup/cygwin/Makefile.am
index c34ca6ddc..bfb5ead10 100644
--- a/winsup/cygwin/Makefile.am
+++ b/winsup/cygwin/Makefile.am
@@ -602,8 +602,8 @@ $(NEW_DLL_NAME): $(LDSCRIPT) libdll.a $(VERSION_OFILES) $(LIBSERVER)\
$(newlib_build)/libm.a \
$(newlib_build)/libc.a \
-lgcc -lkernel32 -lntdll -Wl,-Map,cygwin.map
- @$(MKDIR_P) ${target_builddir}/winsup/testsuite/runtime/
- $(AM_V_at)$(INSTALL_PROGRAM) $(NEW_DLL_NAME) ${target_builddir}/winsup/testsuite/runtime/$(DLL_NAME)
+ @$(MKDIR_P) ${target_builddir}/winsup/testsuite/testinst/bin/
+ $(AM_V_at)$(INSTALL_PROGRAM) $(NEW_DLL_NAME) ${target_builddir}/winsup/testsuite/testinst/bin/$(DLL_NAME)
# cygwin import library
toolopts=--cpu=@target_cpu@ --ar=@AR@ --as=@AS@ --nm=@NM@ --objcopy=@OBJCOPY@
diff --git a/winsup/doc/faq-programming.xml b/winsup/doc/faq-programming.xml
index 7fc6baf25..15ae6eac4 100644
--- a/winsup/doc/faq-programming.xml
+++ b/winsup/doc/faq-programming.xml
@@ -697,7 +697,8 @@ Building these programs can be disabled with the <literal>--without-cross-bootst
option to <literal>configure</literal>.
</para>
-<!-- If you want to run the tests, <literal>dejagnu</literal> is also required. -->
+<!-- If you want to run the tests, <literal>dejagnu</literal> and
+ <literal>busybox</literal> are also required. -->
<para>
Building the documentation also requires the <literal>dblatex</literal>,
diff --git a/winsup/testsuite/Makefile.am b/winsup/testsuite/Makefile.am
index 7853d98e8..11332eda2 100644
--- a/winsup/testsuite/Makefile.am
+++ b/winsup/testsuite/Makefile.am
@@ -339,7 +339,7 @@ testdll_tmpdir = $(shell cygpath -ma $(tmpdir) | sed -e 's#^\([A-Z]\):#/cygdrive
site-extra.exp: ../config.status Makefile
@rm -f ./tmp0
- @echo "set runtime_root \"`pwd`/runtime\"" >> ./tmp0
+ @echo "set runtime_root \"`pwd`/testinst/bin\"" >> ./tmp0
@echo "set tmpdir $(tmpdir)" >> ./tmp0
@echo "set testdll_tmpdir $(testdll_tmpdir)" >> ./tmp0
@echo "set cygrun \"`pwd`/mingw/cygrun\"" >> ./tmp0
@@ -347,6 +347,29 @@ site-extra.exp: ../config.status Makefile
EXTRA_DEJAGNU_SITE_CONFIG = site-extra.exp
+# Set up things in the Cygwin 'installation' at testsuite/testinst/ to provide
+# things which tests need to work
+#
+# * Create /tmp
+# * Ensure there is a /usr/bin/sh for tests which use system()
+# * Ensure there is a /usr/bin/sleep for tests which use system("sleep 10")
+# * Ensure there is a /usr/bin/ls for tests which use system("ls")
+#
+# copy to avoid all the complexities: hardlink will fail if builddir is on a
+# separate filesystem, symlink would need to be constructed with regard to the
+# mounts of the test installation, and making it into /bin/ will cause
+# CreateProcess() to load cygwin1.dll from there.
+#
+# use busybox executables as they don't have any other shared library
+# dependencies other than cygwin1.dll.
+#
+
+check-local:
+ $(MKDIR_P) ${builddir}/testinst/tmp
+ cd ${builddir}/testinst/bin && cp /usr/libexec/busybox/bin/busybox.exe sh.exe
+ cd ${builddir}/testinst/bin && cp /usr/libexec/busybox/bin/busybox.exe sleep.exe
+ cd ${builddir}/testinst/bin && cp /usr/libexec/busybox/bin/busybox.exe ls.exe
+
# target to build all the programs needed by check, without running check
check_programs: $(check_PROGRAMS)