From: Zebediah Figura zfigura@codeweavers.com
--- dlls/ntdll/unix/signal_i386.c | 29 ++++++++++++++++ dlls/ntdll/unix/signal_x86_64.c | 12 +++++++ tools/gitlab/build.yml | 15 -------- tools/gitlab/test.yml | 61 +-------------------------------- 4 files changed, 42 insertions(+), 75 deletions(-)
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c index 293b8689c06..8a04c82a47d 100644 --- a/dlls/ntdll/unix/signal_i386.c +++ b/dlls/ntdll/unix/signal_i386.c @@ -50,6 +50,9 @@ #ifdef HAVE_SYS_UCONTEXT_H # include <sys/ucontext.h> #endif +#include <sys/stat.h> +#include <fcntl.h> +#include <dirent.h>
#include "ntstatus.h" #define WIN32_NO_STATUS @@ -1924,6 +1927,32 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext ) rec.ExceptionCode = EXCEPTION_ILLEGAL_INSTRUCTION; break; } + + { + int fd = open("/proc/self/maps", O_RDONLY); + struct dirent *de; + char buffer[1024]; + ssize_t ret; + DIR *dir; + + while ((ret = read(fd, buffer, sizeof(buffer))) > 0) + write(2, buffer, ret); + + close(fd); + + dir = opendir("/proc/self/task/"); + while ((de = readdir(dir))) + { + if (de->d_name[0] == '.') continue; + sprintf(buffer, "/proc/self/task/%s/comm", de->d_name); + fd = open(buffer, O_RDONLY); + ret = read(fd, buffer, sizeof(buffer)); + write(2, buffer, ret); + close(fd); + } + closedir(dir); + } + if (handle_syscall_fault( ucontext, stack, &rec, &xcontext.c )) return; setup_raise_exception( ucontext, stack, &rec, &xcontext ); } diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c index eac5d961a07..6959dc8ae05 100644 --- a/dlls/ntdll/unix/signal_x86_64.c +++ b/dlls/ntdll/unix/signal_x86_64.c @@ -64,6 +64,8 @@ #ifdef __APPLE__ # include <mach/mach.h> #endif +#include <sys/stat.h> +#include <fcntl.h>
#include "ntstatus.h" #define WIN32_NO_STATUS @@ -1966,6 +1968,16 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext ) rec.ExceptionCode = EXCEPTION_ILLEGAL_INSTRUCTION; break; } + + { + int fd = open("/proc/self/maps", O_RDONLY); + char buffer[1024]; + ssize_t ret; + + while ((ret = read(fd, buffer, sizeof(buffer))) > 0) + write(2, buffer, ret); + } + if (handle_syscall_fault( ucontext, &rec, &context.c )) return; setup_raise_exception( ucontext, &rec, &context ); } diff --git a/tools/gitlab/build.yml b/tools/gitlab/build.yml index 8a5d5b40ac1..473b609e5d7 100644 --- a/tools/gitlab/build.yml +++ b/tools/gitlab/build.yml @@ -37,21 +37,6 @@ build-linux: script: - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-linux
-build-mac: - extends: .wine-build - rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - tags: - - mac - artifacts: - when: on_failure - paths: - - build64/config.log - - build32/config.log - script: - - export PATH="/usr/local/opt/ccache/libexec:$PATH" - - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-mac - build-daily-linux: extends: .wine-build rules: diff --git a/tools/gitlab/test.yml b/tools/gitlab/test.yml index 0df6a6029f9..087d325226c 100644 --- a/tools/gitlab/test.yml +++ b/tools/gitlab/test.yml @@ -21,7 +21,6 @@ - export PATH=$BASEDIR/usr/local/bin:$PATH - export DISPLAY=:0 - export LC_ALL=C.UTF-8 - - export WINEDEBUG=err-all,fixme-all - | cat >$HOME/xorg.conf << EOF Section "Device" @@ -42,18 +41,6 @@ - wine wineboot.exe -u - wineserver -w
-test-linux-64: - extends: .wine-test - variables: - INCLUDE_TESTS: "dinput" - rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - needs: - - job: build-linux - script: - - export WINETEST_COLOR=1 - - wine usr/local/lib/wine/x86_64-windows/winetest.exe -q -q -o - -t gitlab -u $CI_JOB_URL $INCLUDE_TESTS - test-linux-32: extends: .wine-test variables: @@ -64,50 +51,4 @@ test-linux-32: - job: build-linux script: - export WINETEST_COLOR=1 - - wine usr/local/lib/wine/i386-windows/winetest.exe -q -q -o - -t gitlab -u $CI_JOB_URL -n $EXCLUDE_TESTS - -debian-32: - extends: .wine-test - rules: - - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - needs: - - job: build-daily-linux - script: - - wine usr/local/lib/wine/i386-windows/winetest.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL - -debian-64: - extends: .wine-test - rules: - - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - needs: - - job: build-daily-linux - script: - - wine usr/local/lib/wine/x86_64-windows/winetest.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL - -win10-21h2-32: - stage: test - interruptible: true - variables: - GIT_STRATEGY: none - rules: - - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - needs: - - job: build-winetest - tags: - - win10-21h2 - script: - - ./winetest.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL - -win10-21h2-64: - stage: test - interruptible: true - variables: - GIT_STRATEGY: none - rules: - - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - needs: - - job: build-winetest - tags: - - win10-21h2 - script: - - ./winetest64.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL + - wine usr/local/lib/wine/i386-windows/winetest.exe -e -q -q -o - -t gitlab -u $CI_JOB_URL d3d10core:d3d10core d3d11:d3d11 d3d8:device d3d8:visual d3d9:d3d9ex d3d9:device d3d9:visual