Subject: Re: bug#48541: [PATCH] gnu: Fix build for ldc.

From: Roel Janssen <[email-masked]>
Date: Fri, 21 May 2021 12:24:00 +0200

Hi Ludo’,

Thank you for looking at the patch so quickly! :)

On Fri, 2021-05-21 at 12:09 +0200, Ludovic Courtès wrote:
> Hi Roel,
> 
> Roel Janssen <[email-masked]> skribis:
> 
> > I looked into why our LDC package fails to build, and it seems that
> > all tests that make use of "ptrace" fail because the build
> > environment 
> > doesn't allow it.
> > So I disabled these tests by removing the relevant files, and
> > completed a successful build.
> > 
> > If there is a way to provide the build environment with the ability
> > to
> > use ptrace, and if that is preferred to removing tests, then please
> > let me know so I can prepare another patch.
> 
> The build environment doesn’t prevent the use of ptrace per se, AFAIK.
> However, some systems may have /proc/sys/kernel/yama/ptrace_scope set
> to
> 1 (as a system-level setting), which prevents ptracing one’s own
> processes, unless they’re a child.
> 
> I thought this could have been the reason but I see that ldc fails to
> build on berlin, where ptrace_scope is 0 (it’s Guix System), so maybe
> there’s something else.  Unfortunately the build log at
> <https://ci.guix.gnu.org/build/290794/log/raw> doesn’t show anything.
> 
> Do you have more info about these failures?
> 

I attached the test suite's logs for the failed tests. The complete log
can be found in 'build/Testing/Temporary/LastTest.log' of the build
directory of a failed build.  It is too large to attach though.

The log shows the following:
------
Test runnable/b18504.d failed.  The logged output:
/tmp/guix-build-ldc-1.10.0.drv-0/build/bin/ldmd2 -conf= -m64 -Irunnable
-g -g -link-defaultlib-debug  -od../../../../build/dmd-testsuite-
debug/runnable -of../../../../build/dmd-testsuite-
debug/runnable/b18504_0  runnable/b18504.d 
gdb ../../../../build/dmd-testsuite-debug/runnable/b18504_0 --batch -x
../../../../build/dmd-testsuite-debug/runnable/b18504_0.gdb
warning: Could not trace the inferior process.
warning: ptrace: Operation not permitted
../../../../build/dmd-testsuite-debug/runnable/b18504_0.gdb:2: Error in
sourced command file:
During startup program exited with code 127.

------

> > > From 191aa4cc2f131453d9ffc902d72dbe16307aa0c0 Mon Sep 17 00:00:00
> > > 2001
> > From: Roel Janssen <[email-masked]>
> > Date: Thu, 20 May 2021 18:04:05 +0200
> > Subject: [PATCH] gnu: Fix build for ldc.
> > 
> > * gnu/packages/dlang.scm (ldc): Disable tests that use ptrace.
> > ---
> >  gnu/packages/dlang.scm | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> > 
> > diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
> > index da3b818c26..33be779ba3 100644
> > --- a/gnu/packages/dlang.scm
> > +++ b/gnu/packages/dlang.scm
> > @@ -240,6 +240,16 @@ bootstrapping more recent compilers written in
> > D.")
> >                 (delete-file "tests/compilable/ctfe_math.d")
> >                 (delete-file "tests/debuginfo/nested_gdb.d")
> >                 (delete-file "tests/debuginfo/classtypes_gdb.d")
> > +               ;; the following tests need special permissions for
> > ptrace:
> > +               (delete-file "tests/d2/dmd-
> > testsuite/runnable/b18504.d")
> > +               (delete-file "tests/d2/dmd-
> > testsuite/runnable/gdb14225.d")
> > +               (delete-file "tests/d2/dmd-
> > testsuite/runnable/gdb14276.d")
> > +               (delete-file "tests/d2/dmd-
> > testsuite/runnable/gdb14313.d")
> > +               (delete-file "tests/d2/dmd-
> > testsuite/runnable/gdb14330.d")
> 
> In the interim, perhaps you can commit it with a link to this issue
> and/or additional info about the problem?
> 

I'd like to resolve the build failure quickly indeed.  Perhaps we can
have one more look in the attached logs before I push a (wrong)
solution prematurely.

> Thanks,
> Ludo’.