Re: [PATCH, gfortran] libgfortran: implement fpu-macppc for Darwin, support IEEE arithmetic
Hi, The core of the powerpc-FPU manipulation is okay for me. Some comments below. > --- a/gcc/testsuite/gfortran.dg/ieee/signaling_2_c.c > +++ b/gcc/testsuite/gfortran.dg/ieee/signaling_2_c.c > @@ -1,3 +1,11 @@ > +#ifdef __POWERPC__ // No support for issignaling in math.h on Darwin PPC Two things: 1. I don’t understand why that needs to be added. The companion test in signaling_2.f90 has: ! { dg-require-effective-target issignaling } */ ! The companion C source needs access to the issignaling macro. Therefore, if the issignaling macro is not available, the test should not even be run. 2. Maybe this is actually moot. Is the __builtin_issignaling() macro available on all targets? The test was written before it was added to the middle-end. If the answer to the previous question is yes, we should simply use it in instead of the macro. > +/* There is no consistency re what is to be included in all_invalid. > + Apple libm has 0x01f80300, Openlibm/FreeBSD/NetBSD has 0x21f80700 > + and OpenBSD has 0x01f80700. In particular, FE_INVALID_SOFT and > + FE_INVALID are contested. */ > +#define FE_ALL_INVALID 0x01F80700 > +#define FE_NO_INVALID 0xFE07F8FF > + > +/* Apple libm has 0xFFF80300 and 0x0007FCFF here. */ > +#define FE_ALL_FLAGS0xFFF80700 > +#define FE_NO_FLAGS 0x0007F8FF Since it’s a darwin-only file, why not follow Apple libm conventions? > There is one test which changes from PASS to FAIL (round_4), however I think > this is not a real regression, and the test in its present form is expected > to fail. > See comments in the test code in the source and my post: > https://gcc.gnu.org/pipermail/fortran/2024-July/060612.html I agree that round_4.f90 should be added to the dg-skip-if. But I’d like to understand better what are the other new failures, and why there arise? FX
Re: [PATCH] jit: Ensure ssize_t is defined.
> But isn't the bigger issue that sys/types.h isn't guaranteed to contain > a declaration of ssize_t? And that when sys/types.h isn't available > we don't get ssize_t from it either? Some targets seem to get it indirectly from stdio.h As far as I know, darwin is the only platform broken currently, and the patch is definitely an improvement there. > That said, maybe we're fine with this but then I walk back and say > just unconditionally include sys/types.h ... It is included unconditionally in other headers, yes. > Should be Davids say as he added this API. Agreed, but a version of the patch was original proposed in January by Iain Sandoe, and I have proposed and pinged another version since May 2nd, and got no response from him. It is breaking build on a FX
Re: [PATCH] fixincludes: adjust stdio fix for macOS 15 headers
> OK. thanks for the fix > I guess we have also to backport if we want earlier branches to bootstrap > there too? Thanks. I’ll backport after some time. FX
Re: [PATCH] jit: Ensure ssize_t is defined.
Among the review comments from the last round, Jakub suggested: > Perhaps libgccjit.h could use > #ifdef __has_include > #if __has_include () > #include > #endif > #endif > instead of just #include . I’m not sure it’s necessary since other headers treat as always available, but I suppose it can’t hurt. So here is a revised patch as suggested. Bootstrapped on x86_64-apple-darwin23. OK to push? FX 0001-jit-Ensure-ssize_t-is-defined.patch Description: Binary data
[PATCH] fixincludes: adjust stdio fix for macOS 15 headers
macOS 15 headers move the bulk of the content of to an included header <_stdio.h> so we apply the “apple_local_stdio_fn_deprecation” fixinclude to this file also. Restores bootstrap on darwin24. OK to push? FX fixincludes/ChangeLog: * fixincl.x: Regenerate. * inclhack.def (apple_local_stdio_fn_deprecation): Also apply to _stdio.h. 0001-fixincludes-adjust-stdio-fix-for-macOS-15-headers.patch Description: Binary data
Re: [PATCH] jit: Ensure ssize_t is defined.
> While stdio.h can be relied on to exist I do not think you can assume > the same for sys/types.h without "configury", but libgccjit.h is an > installed API. sys/types.h is already included unconditionally in gcc/system.h and gcc/tsystem.h. The later says: /* All systems have this header. */ #include FX
Re: [PATCH] jit: Ensure ssize_t is defined.
Hi I can’t seem to get a review of this one-line patch. Could a global reviewer help? Thanks, FX ping**3 > Le 11 mai 2024 à 17:16, FX Coudert a écrit : > > Hi, > > On some targets it seems that ssize_t is not defined by any of the headers > transitively included by . This leads to a bootstrap fail when jit > is enabled. The attached patch fixes it by include . Other > headers in GCC treat as available on all targets, so we include > it unconditionally. > > Tested on x86_64-darwin and x86_64-linux. OK to push? > > FX > 0001-jit-Ensure-ssize_t-is-defined.patch Description: Binary data
Re: [PATCH] fixincludes: bypass the math_exception fix on __cplusplus
> However, please note that the comment states > * This should be bypassed on __cplusplus, but some supposedly C++ > * aware headers, such as Solaris 8 and 9, don't wrap their struct > It's "such as Solaris 8 and 9", so there may well be others. I know, but that was 24 years ago, and I could find zero documentation anywhere (mailing-list or bugzilla) of what those other targets could be. I don’t think it’s unreasonable, for the benefit of all the other working targets, to reverse now. It is early in stage 1, and the fix be restored if needed on specific targets. Best, FX
Re: [PATCH] fixincludes: bypass the math_exception fix on __cplusplus
> :-D Looks good to me. EXCEPT I think the test sample file would need a > change, too. I didn't see that. Running “make check” produces the additional diff, which I’ll add to the patch before I push. Does it look okay? FX diff --git a/fixincludes/tests/base/math.h b/fixincludes/tests/base/math.h index 7b92f29a409..3c378c5df95 100644 --- a/fixincludes/tests/base/math.h +++ b/fixincludes/tests/base/math.h @@ -7,12 +7,6 @@ This had to be done to correct non-standard usages in the original, manufacturer supplied header file. */ -#ifndef FIXINC_WRAP_MATH_H_MATH_EXCEPTION -#define FIXINC_WRAP_MATH_H_MATH_EXCEPTION 1 - -#ifdef __cplusplus -#define exception __math_exception -#endif #if defined( BROKEN_CABS_CHECK ) @@ -146,8 +140,3 @@ int foo; #endif /* _C99 */ #endif /* VXWORKS_MATH_H_FP_C99_CHECK */ -#ifdef __cplusplus -#undef exception -#endif - -#endif /* FIXINC_WRAP_MATH_H_MATH_EXCEPTION */
[PATCH] fixincludes: bypass the math_exception fix on __cplusplus
The fixincludes fix “math_exception” is being applied overly broadly, including many targets which don’t need it, like darwin (and probably all non-glibc targets). I’m not sure if it is still needed on any target, but because I can’t be absolutely positive about that, I don’t want to remove it. But it dates from before 1998. In subsequent times (2000) it was bypassed on glibc headers, as well as Solaris 10. It was still needed on Solaris 8 and 9, which are (AFAICT) unsupported nowadays. The fix was originally bypassed on __cplusplus, which is the correct thing to do, but that bypass was neutralized to cater to a bug on Solaris 8 and 9 headers. Now that those are gone… let’s revert to the previous bypass. Bootstrapped and regtested on x86_64-apple-darwin23, where it no longer “fixes” the header unnecessarily. OK to push? FX 0001-fixincludes-bypass-the-math_exception-fix-on-__cplus.patch Description: Binary data
[PATCH] fixincludes: bypass some fixes for recent darwin headers
Hi, macOS SDKs sometimes contain non-standard constructs, and require fixes through fixincludes. However, they are typically fixed in later SDK versions, although the process can be slow. Fixes have accumulated, which may be needed only for some older versions of the SDKs. They should be bypassed on modern macOS, and this patch does that for 4 cases. This makes the compiler less fragile when switching between SDKs. Before the patch, 8 headers are fixincluded on x86_64-apple-darwin23: AvailabilityInternal.h math.h os/base.h stdint.h dispatch/object.h objc/runtime.h os/trace.h stdio.h After the patch, only 4: AvailabilityInternal.h math.h objc/runtime.h stdio.h Bootstrapped and regtested on x86_64-apple-darwin23. OK to push? FX 0001-fixincludes-bypass-some-fixes-for-recent-darwin-head.patch Description: Binary data
Re: [PATCH] jit: Ensure ssize_t is defined.
ping**2 for this one-liner > Le 11 mai 2024 à 17:16, FX Coudert a écrit : > > Hi, > > On some targets it seems that ssize_t is not defined by any of the headers > transitively included by . This leads to a bootstrap fail when jit > is enabled. The attached patch fixes it by include . Other > headers in GCC treat as available on all targets, so we include > it unconditionally. > > Tested on x86_64-darwin and x86_64-linux. OK to push? > > FX > > <0001-jit-Ensure-ssize_t-is-defined.patch>
Re: [wwwdocs][patch] gcc-15/changes.html: Fortran - mention F2023 logical-kind additions
Seems good, thanks Tobias! FX
Re: [PATCH] jit: Ensure ssize_t is defined.
ping > Le 11 mai 2024 à 17:16, FX Coudert a écrit : > > Hi, > > On some targets it seems that ssize_t is not defined by any of the headers > transitively included by . This leads to a bootstrap fail when jit > is enabled. The attached patch fixes it by include . Other > headers in GCC treat as available on all targets, so we include > it unconditionally. > > Tested on x86_64-darwin and x86_64-linux. OK to push? > > FX > > <0001-jit-Ensure-ssize_t-is-defined.patch>
Re: [Patch] Fortran: invoke.texi - link to OpenCoarrays.org + mention libcaf_single
Hi Tobias, > OK for mainline? Seems reasonable, OK to push in 48 hours unless someone has suggestions related to wording. FX
Re: [Patch] Fortran: Fix SHAPE for zero-size arrays
Hi Tobias, > That is for https://gcc.gnu.org/PR115150 – a GCC 12/13/14/15 regression, > caused when switching from a libgomp call to inline code and missing the > corner case of zero-size arrays … OK to push, thanks. FX
[PATCH] jit: Ensure ssize_t is defined.
Hi, On some targets it seems that ssize_t is not defined by any of the headers transitively included by . This leads to a bootstrap fail when jit is enabled. The attached patch fixes it by include . Other headers in GCC treat as available on all targets, so we include it unconditionally. Tested on x86_64-darwin and x86_64-linux. OK to push? FX 0001-jit-Ensure-ssize_t-is-defined.patch Description: Binary data
Re: [PATCH, libgfortran] aix: Fix building fat library for AIX
> libgfortran/ChangeLog: > * config/t-aix (all-local, libcaf_single): Explicitly reference > caf/.libs/single.o OK, and sorry for the breakage. FX
Re: [PATCH] libgfortran: Fix libgfortran.so versioning on Solaris with subdirs
Hi Rainer, > This patch fixes this by allowing for the new structure. > Tested on i386-pc-solaris2.11 and sparc-sun-solaris2.11. > > Ok for trunk? OK to push, given it’s localised inside LIBGFOR_USE_SYMVER_SUN. I find it weird though that .libs is harcoded there. If we look at all the lib*/Makefile.am in gcc, the only thing that ever needs to specify .libs is for Solaris versioning. It feels like it should be more generic, as you say (but that’s for longer term). FX
Re: [PATCH] libgfortran: Fix up the autoreconf warnings.
> libgfortran/ChangeLog: > * Makefile.am: Use sub-dirs, amend recipies accordingly. > * Makefile.in: Regenerate. Thanks Iain, I’ve tested it both with and without maintainer mode, and regenerated files with no issue. I can also confirm that the many autoreconf warnings that plagued libgfortran are now gone. Push as affd24bfc62203db9f9937c0d6cf8f1f75b80d72 FX
Re: [PATCH] jit: Ensure ssize_t is defined.
I’d like to ping the patch at https://gcc.gnu.org/pipermail/gcc-patches/2024-January/644134.html The original proposal by Iain was: diff --git a/gcc/jit/libgccjit.h b/gcc/jit/libgccjit.h index 235cab053e0..db4f27a48bf 100644 --- a/gcc/jit/libgccjit.h +++ b/gcc/jit/libgccjit.h @@ -21,6 +21,9 @@ along with GCC; see the file COPYING3. If not see #define LIBGCCJIT_H #include +#if __has_include() +# include /* For ssize_t. */ +#endif #ifdef __cplusplus extern "C" { but it seems we can’t use __has_include. However, other code in GCC treats as available on all targets. See unconditional inclusion in gcc/system.h and gcc/tsystem.h. The latter even says: /* All systems have this header. */ #include So: would an unconditional inclusion be suitable? I’ve tested on linux and darwin with no issues: diff --git a/gcc/jit/libgccjit.h b/gcc/jit/libgccjit.h index 74e847b2dec..cbe0f70abee 100644 --- a/gcc/jit/libgccjit.h +++ b/gcc/jit/libgccjit.h @@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see #define LIBGCCJIT_H #include +#include #ifdef __cplusplus extern "C” { Thanks, FX
Re: [PATCH] Fortran: ALLOCATE of fixed-length CHARACTER with SOURCE/MOLD [PR113793]
Hi Harald, > Regtested on x86_64-pc-linux-gnu. OK for mainline? Looks good to me. FX
Re: [PATCH 0/1] libgfortran: Fix compilation of gf_vsnprintf
> Gentle ping. If this looks good, can someone commit to main (I don't have > commit privileges). This is also something that could be considered for > stable, since it's been around for many years. Thanks for the patch. Pushed as https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=3bd3ca05b519b99b5ea570c10fd80737cd4c6c49 FX
Re: [PATCH] Fortran: fix argument checking of intrinsics C_SIZEOF, C_F_POINTER [PR106500]
Hi Harald, Thanks for the patch. > + if (attr.function) > +{ > + gfc_error ("FPTR at %L to C_F_POINTER is a function returning a > pointer", > + >where); > + return false; > +} > + >if (fptr->rank > 0 && !is_c_interoperable (fptr, , false, true)) > return gfc_notify_std (GFC_STD_F2018, "Noninteroperable array FPTR " > "at %L to C_F_POINTER: %s", >where, msg); In both of these gfc_error(), could we change our error message to say "FPTR argument” instead of “FPTR”? “FPTR to C_F_POINTER” does not really make sense to me. This would be more in line with what the generally do: > Error: 'x' argument of 'sqrt' intrinsic at (1) must be REAL or COMPLEX So maybe “FPTR argument to C_F_POINTER at %L” ? That’s much more readable to me. Otherwise, OK. FX
[PATCH] Fortran: add two small F2023 features
Hi, These two (independent) patches add two tiny Fortran 2023 features: new ISO_FORTRAN_ENV named constants and SELECTED_LOGICAL_KIND intrinsic. Bootstrapped and regtested on x86_64-pc-linux-gnu. Please review, and let me know if it’s okay to push once we’re back in stage 1. (I know it’s not particularly soon, but I don’t want to forget these so I’m posting them for review) FX 0001-Fortran-add-F2023-ISO_FORTRAN_ENV-named-constants.patch Description: Binary data 0002-Fortran-add-SELECTED_LOGICAL_KIND.patch Description: Binary data
Re: [PATCH] Fix libcc1plugin and libc1plugin to avoid poisoned identifiers
Given its fixes build, is obvious, and tested appropriately: patch pushed as https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5213047b1d50af63dfabb5e5649821a6cb157e33 FX
[PATCH] testsuite, darwin: improve check for -shared support
The undefined symbols are allowed for C checks, but when this is run as C++, the mangled foo() symbol is still seen as undefined, and the testsuite thinks darwin does not support -shared. Pushed after approval by Iain Sandoe in PR114233 FX 0001-testsuite-darwin-improve-check-for-shared-support.patch Description: Binary data
Re: [PATCH] Include safe-ctype.h after C++ standard headers, to avoid over-poisoning
> I think it's an obvious change ... Thanks, pushed. Dimitry, I suggest you post the second patch for review. FX
Re: [PATCH] Include safe-ctype.h after C++ standard headers, to avoid over-poisoning
> Hmm I recall trying it and finding a problem - was there some different fix > applied > in the end? The bug is still open, I don’t think a patch was applied, and I don’t find any email to the list stating what the problem could be. FX
Re: [PATCH] Include safe-ctype.h after C++ standard headers, to avoid over-poisoning
I would like to patch this patch from September 2023: https://gcc.gnu.org/pipermail/gcc-patches/2023-September/631611.html This bug is now hitting macOS in the latest version of Xcode (it was originally seen on freebsd). I confirm that the patch is restoring bootstrap on x86_64-apple-darwin23 OK to push? FX > Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111632 > > When building gcc's C++ sources against recent libc++, the poisoning of > the ctype macros due to including safe-ctype.h before including C++ > standard headers such as , , etc, causes many compilation > errors, similar to: > > In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23: > In file included from /home/dim/src/gcc/master/gcc/system.h:233: > In file included from /usr/include/c++/v1/vector:321: > In file included from > /usr/include/c++/v1/__format/formatter_bool.h:20: > In file included from > /usr/include/c++/v1/__format/formatter_integral.h:32: > In file included from /usr/include/c++/v1/locale:202: > /usr/include/c++/v1/__locale:546:5: error: '__abi_tag__' attribute > only applies to structs, variables, functions, and namespaces > 546 | _LIBCPP_INLINE_VISIBILITY > | ^ > /usr/include/c++/v1/__config:813:37: note: expanded from macro > '_LIBCPP_INLINE_VISIBILITY' > 813 | # define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI > | ^ > /usr/include/c++/v1/__config:792:26: note: expanded from macro > '_LIBCPP_HIDE_FROM_ABI' > 792 | > __attribute__((__abi_tag__(_LIBCPP_TOSTRING( > _LIBCPP_VERSIONED_IDENTIFIER > | ^ > In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23: > In file included from /home/dim/src/gcc/master/gcc/system.h:233: > In file included from /usr/include/c++/v1/vector:321: > In file included from > /usr/include/c++/v1/__format/formatter_bool.h:20: > In file included from > /usr/include/c++/v1/__format/formatter_integral.h:32: > In file included from /usr/include/c++/v1/locale:202: > /usr/include/c++/v1/__locale:547:37: error: expected ';' at end of > declaration list > 547 | char_type toupper(char_type __c) const > | ^ > /usr/include/c++/v1/__locale:553:48: error: too many arguments > provided to function-like macro invocation > 553 | const char_type* toupper(char_type* __low, const > char_type* __high) const > | ^ > /home/dim/src/gcc/master/gcc/../include/safe-ctype.h:146:9: note: > macro 'toupper' defined here > 146 | #define toupper(c) do_not_use_toupper_with_safe_ctype > | ^ > > This is because libc++ uses different transitive includes than > libstdc++, and some of those transitive includes pull in various ctype > declarations (typically via ). > > There was already a special case for including before > safe-ctype.h, so move the rest of the C++ standard header includes to > the same location, to fix the problem. >
Re: [patch, libgfortran] Bug 105473 - semicolon allowed when list-directed read integer with decimal='point'
> OK for trunk and later backport to 13? OK. Thanks for the patch! FX
Re: [patch, libgfortran] PR107068 Run-time error when reading logical arrays with a namelist
> OK for trunk? > I think simple enough to backport to 13 as well. OK, but probably best to wait a few weeks before backporting. FX
Re: [patch, libgfortran] PR99210 X editing for reading file with encoding='utf-8'
> Regression tested on x86_64 and new test case. > OK for trunk? OK, and thanks! FX
[PATCH] i386, testsuite: adjust asm patterns
The new testcase gcc.target/i386/asm-raw-symbol.c fails on darwin. This is partly because symbols are prefixed with underscore, and also because the order of operands in the addition is reversed (but I think it’s valid still). The code generated is this: _func: LFB0: pushq %rbp LCFI0: movq%rsp, %rbp LCFI1: # 8 "/Users/fx/gcc-upstream/gcc/testsuite/gcc.target/i386/asm-raw-symbol.c" 1 @ _func # 0 "" 2 # 9 "/Users/fx/gcc-upstream/gcc/testsuite/gcc.target/i386/asm-raw-symbol.c" 1 @ 4+_var # 0 "" 2 nop popq%rbp LCFI2: ret I’m adjusting the pattern accordingly. OK to push? FX 0001-i386-testsuite-adjust-asm-patterns.patch Description: Binary data
[pushed] Darwin, testsuite: skip some -mcmodel=large tests
Three new tests using -mcmodel=large, which darwin does not support. Skipping them. Pushed as obvious. FX 0001-Darwin-testsuite-skip-some-mcmodel-large-tests.patch Description: Binary data
[PATCH] Darwin, testsuite: -multiply_defined is obsolete
With Xcode 15, gcc.dg/ssp-2.c fails due to a warning: -multiply_defined is obsolete The patches ignores the warning when present. OK to push? FX 0001-Darwin-testsuite-multiply_defined-is-obsolete.patch Description: Binary data
[PATCH] Darwin, testsuite: -bind_at_load is deprecated
With Xcode 15, gcc.dg/darwin-ld-2.c fails due to a warning: ld: warning: -bind_at_load is deprecated on macOS The patches ignores the warning when present. OK to push? FX 0001-Darwin-testsuite-bind_at_load-is-deprecated.patch Description: Binary data
Re: [PATCH] testsuite, gfortan: Update link flags [PR112862].
> Tested on i686, x86_64, aarch64 Darwin, x86_64, aarch64 Linux, > OK for trunk? Looks good to me. Please leave 48h before pushing for other Fortran maintainers to comment if they see something I missed (in particular the coarrays part). FX
Re: [Fortran] half-cycle trig functions and atan[d] fixes
Hi, > Hopefully, FX sees this as my emails to gmail bounce. I am seeing this email. > Now, if > the OS adds cospi() to libm and it's in libm's symbol map, then the > cospi() used by gfortran depends on the search order of the loaded > libraries. We only include the fallback math functions in libgfortran when they are not available on the system. configure detects what is present in the libc being targeted, and conditionally compiles the necessary fallback functions (and only them). FX
Re: [Fortran] half-cycle trig functions and atan[d] fixes
Hi Steve, Thanks for the patch. I’ll take time to do a proper review, but after a first read I had the following questions: - "an OS's libm may/will contain cospi(), etc.”: do those functions conform to any standard? Are there plans to implement them outside FreeBSD at this point? - On systems where libquadmath is used for _Float128, does libquadmath contain the implementation of the q() variants for those functions? - If I get this right, to take one example, the Fortran front-end will emit a call to gfortran_acospi_r4(), libgfortran provides this as a wrapper calling acospif(), which is called either from libm or from libgfortran. This is different from other math library functions, like ACOS() where the acosf() call is generated directly from the front-end (and then the implementation comes either from libm or from libgfortran). Why not follow our usual way of doing things? - On most targets, cospi() and friends are not available. Therefore, we end up doing the fallback (with limited precision as you noted) but with a lot of indirection. We could generate that code directly in the front-end, couldn’t we? Best, FX
Re: [PATCH] Fortran: bogus warnings with REPEAT intrinsic and -Wconversion-extra [PR96724]
Hi Harald, OK to push, thanks for picking it up! FX
[PATCH] libgfortran: avoid duplicate libraries in spec
When gfortran invokes the linker, it reads the linking spec from libgfortran. This ends up doing things like: -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc where you can see that libgcc (both -lgcc and -lgcc_s) is linked in twice. This wasn’t a problem, until the new macOS linker, which gives a warning for this: the warning is innocuous, but having a warning for every time you call gfortran for linking clutters the terminal, and makes all the testsuite fail. And linking twice is superfluous, so removing it will not be a problem. I am the author of the original commit to the spec, in 2010, but honestly I have no memory: I think I vaguely remember saying “better safe than sorry”, but 13 years later it could just be a false memory ;) Anyway, this was tested on x86_64-darwin and x64_86-linux, as well as *-*-solaris2.11 by Rainer. OK to commit? (seems admissible in stage 3 because it fixes regtesting on darwin22 and darwin23). FX libgfortran/ChangeLog: PR libfortran/110651 * libgfortran.spec.in: Remove duplicate libraries. --- libgfortran/libgfortran.spec.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 0001-libgfortran-avoid-duplicate-libraries-in-spec.patch Description: Binary data
Re: [PATCH] i386: Fix missed APX_NDD check for shift/rotate expanders [PR 112943]
The testcase fails on darwin: +FAIL: gcc.target/i386/pr112943.c (test for excess errors) because it does not support _Decimal64. /* { dg-do compile { target { ! ia32 } } } */ should be changed to: /* { dg-do compile { target { dfp && { ! ia32 } } } } */ Thanks, FX
Re: Backport of "fixincludes: Update darwin_flt_eval_method for macOS 14"
> Yes, OK (build fixes are on my list, but you got to it first). Backported to 13 as https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=87e6cc0103369f8891c3c3a516f4d93187c2c12b Backported to 12 as https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=65595b02668c99edcfd5aedac984ebcbb64a1685 FX
Backport of "fixincludes: Update darwin_flt_eval_method for macOS 14"
Hi, I’d like to backport the fixincludes for macOS 14 SDK at https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=93f803d53b5ccaabded9d7b4512b54da81c1c616 to the active branches, i.e. 13, 12 and 11 (unless I am mistaken). The fix has been there for months, it’s stable and very specific. Without it, we can’t compile GCC for macOS 14. OK to backport? FX
Re: [PATCH v8] c++: implement P2564, consteval needs to propagate up [PR107687]
Hi Marek, The patch is causing three failures on x86_64-apple-darwin21: > FAIL: g++.dg/cpp2a/concepts-explicit-inst1.C -std=c++20 scan-assembler > _Z1gI1XEvT_ > FAIL: g++.dg/cpp2a/concepts-explicit-inst1.C -std=c++20 scan-assembler > _Z1gI1YEvT_ > FAIL: g++.dg/cpp2a/consteval-prop6.C -std=c++20 at line 58 (test for > warnings, line 57) How could I help debug this? FX
[PATCH] Testsuite, asan, darwin: Adjust output pattern
Since the last import from upstream libsanitizer, the output has changed and now looks more like this: READ of size 6 at 0x7ff7beb2a144 thread T0 #0 0x101cf7796 in MemcmpInterceptorCommon(void*, int (*)(void const*, void const*, unsigned long), void const*, void const*, unsigned long) sanitizer_common_interceptors.inc:813 #1 0x101cf7b99 in memcmp sanitizer_common_interceptors.inc:840 #2 0x108a0c39f in __stack_chk_guard+0xf (dyld:x86_64+0x8039f) so let's adjust the pattern accordingly. Tested on x86_64-apple-darwin21. OK to push? FX 0001-Testsuite-asan-darwin-Adjust-output-pattern.patch Description: Binary data
[PATCH] Testsuite, i386: mark test as requiring dfp
Test currently fails on darwin with: error: decimal floating-point not supported for this target Pushed as obvious fix. FX 0001-Testsuite-i386-mark-test-as-requiring-dfp.patch Description: Binary data
[PATCH] Testsuite: restrict test to nonpic targets
The test is currently failing on x86_64-apple-darwin. This patch requires nonpic, as suggested in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112297 by Andrew Pinski. OK to commit? FX 0001-Testsuite-restrict-test-to-nonpic-targets.patch Description: Binary data
Re: [r14-5930 Regression] FAIL: gcc.c-torture/compile/libcall-2.c -Os (test for excess errors) on Linux/x86_64
>> Pushed as >> https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=b74981b5cf32ebf4bfffd25e7174b5c80243447a Somehow I pushed the wrong commit, we should skip the test and not xfail. This showed up in https://gcc.gnu.org/pipermail/gcc-testresults/2023-December/802839.html So, new commit push as obvious fixup: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=53e954a673a0d6ac80ab1f0591ea4f751e67374c FX
Re: [PATCH] strub: skip emutls after strubm errors
> Yes, GCC/nvptx ICEs gone with that, thanks! And on darwin as well, test results are back to the same state as before. Thanks! FX
Re: [PATCH] Fortran: allow NULL() for POINTER, OPTIONAL, CONTIGUOUS dummy [PR111503]
Hi Harald, > here's another fix for the CONTIGUOUS attribute: NULL() should > derive its characteristics from its MOLD argument; otherwise it is > "determined by the entity with which the reference is associated". > (F2018:16.9.144). Looking good to me, but leave 48 hours for someone else to object if they want. Best, FX
Re: Several test failures due to "Introduce strub: machine-independent stack scrubbing"
> However, I'm very surprised that you're hitting this with the initial > commit. It's as if strub support was disabled on the target, but even > if you were hitting this with e.g. offloading, only the followup commit > introduced code to disable strub for such targets as nvptx. Anyway, do > you by any chance have any offloading enabled? I may have misidentified the problem, my testing was done on: LAST_UPDATED: Wed Dec 6 16:01:43 UTC 2023 (revision 458e7c93792) https://gcc.gnu.org/pipermail/gcc-testresults/2023-December/802595.html I’m restarting a build right now, will report back. FX
Several test failures due to "Introduce strub: machine-independent stack scrubbing"
Hi Alexandre, The commit https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f0a90c7d7333fc7f554b906245c84bdf04d716d7 (Introduce strub: machine-independent stack scrubbing) has introduced many test failures on x86_64-apple-darwin21: +FAIL: c-c++-common/strub-apply2.c -std=gnu++98 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-apply2.c -std=gnu++98 (test for excess errors) +FAIL: c-c++-common/strub-apply2.c -std=gnu++14 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-apply2.c -std=gnu++14 (test for excess errors) +FAIL: c-c++-common/strub-apply2.c -std=gnu++17 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-apply2.c -std=gnu++17 (test for excess errors) +FAIL: c-c++-common/strub-apply2.c -std=gnu++20 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-apply2.c -std=gnu++20 (test for excess errors) +FAIL: c-c++-common/strub-apply3.c -std=gnu++98 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-apply3.c -std=gnu++98 (test for excess errors) +FAIL: c-c++-common/strub-apply3.c -std=gnu++14 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-apply3.c -std=gnu++14 (test for excess errors) +FAIL: c-c++-common/strub-apply3.c -std=gnu++17 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-apply3.c -std=gnu++17 (test for excess errors) +FAIL: c-c++-common/strub-apply3.c -std=gnu++20 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-apply3.c -std=gnu++20 (test for excess errors) +FAIL: c-c++-common/strub-strict1.c -std=gnu++98 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-strict1.c -std=gnu++98 (test for excess errors) +FAIL: c-c++-common/strub-strict1.c -std=gnu++14 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-strict1.c -std=gnu++14 (test for excess errors) +FAIL: c-c++-common/strub-strict1.c -std=gnu++17 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-strict1.c -std=gnu++17 (test for excess errors) +FAIL: c-c++-common/strub-strict1.c -std=gnu++20 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-strict1.c -std=gnu++20 (test for excess errors) +FAIL: c-c++-common/strub-strict2.c -std=gnu++98 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-strict2.c -std=gnu++98 (test for excess errors) +FAIL: c-c++-common/strub-strict2.c -std=gnu++14 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-strict2.c -std=gnu++14 (test for excess errors) +FAIL: c-c++-common/strub-strict2.c -std=gnu++17 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-strict2.c -std=gnu++17 (test for excess errors) +FAIL: c-c++-common/strub-strict2.c -std=gnu++20 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/strub-strict2.c -std=gnu++20 (test for excess errors) +FAIL: c-c++-common/torture/strub-callable2.c -O0 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/torture/strub-callable2.c -O0 (test for excess errors) +FAIL: c-c++-common/torture/strub-callable2.c -O1 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/torture/strub-callable2.c -O1 (test for excess errors) +FAIL: c-c++-common/torture/strub-callable2.c -O2 (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/torture/strub-callable2.c -O2 (test for excess errors) +FAIL: c-c++-common/torture/strub-callable2.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/torture/strub-callable2.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) +FAIL: c-c++-common/torture/strub-callable2.c -O3 -g (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/torture/strub-callable2.c -O3 -g (test for excess errors) +FAIL: c-c++-common/torture/strub-callable2.c -Os (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/torture/strub-callable2.c -Os (test for excess errors) +FAIL: c-c++-common/torture/strub-callable2.c -O2 -flto -flto-partition=none (internal compiler error: in verify_curr_properties, at passes.cc:2198) +FAIL: c-c++-common/torture/strub-callable2.c -O2 -flto
Re: [PATCH, v3] Fortran: deferred-length character optional dummy arguments [PR93762,PR100651]
Hi, > this patch extends the previous version by adding further code testing > the presence of an optional deferred-length character argument also > in the function initialization code. This allows to re-enable a > commented-out test in v2. Nice, that sounds logical. > Regtested on x86_64-pc-linux-gnu. OK for mainline? OK. FX
Re: [11 PATCH] libiberty, Darwin: Fix a build warning. [PR112823]
> Thanks. I can't push it myself - could you do that for me? Pushed. FX
Re: [r14-5930 Regression] FAIL: gcc.c-torture/compile/libcall-2.c -Os (test for excess errors) on Linux/x86_64
> mcmodel=large s not supported (yet) on any Darwin arch [PR90698], so the test > needs skipping or xfailing, I think (either way with a reference to the PR). Pushed as https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=b74981b5cf32ebf4bfffd25e7174b5c80243447a FX
Re: [r14-5930 Regression] FAIL: gcc.c-torture/compile/libcall-2.c -Os (test for excess errors) on Linux/x86_64
That commit makes gcc.target/i386/libcall-1.c on darwin: FAIL: gcc.target/i386/libcall-1.c scan-assembler globl\t__divti3 because the pattern is not found, the only mention of divti3 in the generated assembly is: LCFI0: movabsq $_b@GOTOFF, %rdx movabsq $___divti3@PLTOFF, %rax leaqL2(%rip), %r15 pushq %rbx The source code is: --- /* Make sure that external refences for libcalls are generated even for indirect calls. */ /* { dg-do compile { target int128 } } */ /* { dg-options "-O2 -mcmodel=large" } */ /* { dg-final { scan-assembler "globl\t__divti3" } } */ __int128 a, b; void foo () { a = a / b; } --- Looking at, for example, gcc.target/i386/falign-functions-3.c it seems that test avoids scanning for global references on darwin. Probably the new test needs the same exception. FX
Re: [PATCH] testsuite, x86: Handle a broken assembler.
Thanks Richard, Pushed as https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=d65eb8a6bbeae7533dd41cb307b427f3f8585d9b FX
Re: [PATCH] Fortran: deferred-length character optional dummy arguments [PR93762,PR100651]
Hi Harald, The patch looks OK to me. Probably wait a bit for another opinion, since I’m not that active and I may have missed something. Thanks, FX
Re: [PATCH] testsuite, x86: Handle a broken assembler.
Hi, I’d like to ping that patch from Iain Sandoe. It would clear up a number of failures in the darwin testsuite. Thanks, FX > --- 8< --- > > Earlier assembler support for complex fp16 on x86_64 Darin is broken. This > adds an additional test to the existing target-supports that fails for the > broken assemblers but works for the newer, fixed, ones. > > gcc/testsuite/ChangeLog: > > * lib/target-supports.exp: Test an asm line that fails on broken > Darwin assembler versions. > > Signed-off-by: Iain Sandoe > --- > gcc/testsuite/lib/target-supports.exp | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/gcc/testsuite/lib/target-supports.exp > b/gcc/testsuite/lib/target-supports.exp > index f0b692a2e19..61ab063afbe 100644 > --- a/gcc/testsuite/lib/target-supports.exp > +++ b/gcc/testsuite/lib/target-supports.exp > @@ -10062,6 +10062,7 @@ proc check_effective_target_avx512fp16 { } { > void foo (void) > { > asm volatile ("vmovw %edi, %xmm0"); > + asm volatile ("vfcmulcph %xmm1, %xmm2, %xmm3{%k1}"); > } > } "-O2 -mavx512fp16" ] > } > -- > 2.39.2 (Apple Git-143)
Re: [PATCH v5] gcc: Introduce -fhardened
Hi Marek, The new test at gcc.target/i386/cf_check-6.c fails on darwin with: Excess errors: cc1: warning: '-fhardened' not supported for this target Other tests are only run on Linux, so I added this to gcc.target/i386/cf_check-6.c as well. Pushed as https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=e40a13eaca4d87ec33beb0d9d31985e0023bfe3e FX
Re: [committed] i386: Fix ICE with -fsplit-stack -mcmodel=large [PR112686]
Hi Uros, The new test at gcc.target/i386/pr112686.c fails on darwin with: Excess errors: cc1: error: '-fsplit-stack' currently only supported on GNU/Linux cc1: error: '-fsplit-stack' is not supported by this compiler configuration It needs an /* { dg-require-effective-target split_stack } */ which I have added and pushed as https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=c54ee4fc1667593081ce80030eeb70838267ad96 FX
Re: Darwin: Replace environment runpath with embedded [PR88590]
Hi, > I believe this can be applied as a partial reversion of a previously approved > patch, Yes, that makes sense. Pushed as https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=ce966ae66067d8d365431ef7a323f4207fcb729a FX
Re: gfortran.dg/dg.exp debug messages pollute test output
> I suppose 'set t [...]' can be let go, too? Duh (x2). Pushed, on top of the previous patch. FX 0001-Testsuite-remove-unused-variables.patch Description: Binary data
Re: Darwin: Replace environment runpath with embedded [PR88590]
>> I have done a full rebuild, and having looked more at the structure of >> libtool.m4 I am now convinced that having that line outside of the scope of >> _LT_DARWIN_LINKER_FEATURES is simply wrong (probably a copy-pasto or >> leftover from earlier code). >> Having rebuilt everything, it only manifests itself in >> fixincludes/ChangeLog. Iain is traveling right now, but when he is back I >> would like to submit this patch if he agrees with the above. It was >> regtested on x86_64-apple-darwin21. With the correct patch attached. 0001-Build-fix-error-in-fixinclude-configure.patch Description: Binary data
Re: [PATCH 1/4] libsanitizer: merge from upstream (c425db2eb558c263)
> If they accept it say within a day, wait for it + cherry-pick to GCC, > otherwise apply to GCC as a local patch in anticipation they accept it. > If it is all that fixes Darwin support, great. With that patch, I can finish bootstrap, and regtesting is undergoing but I’m seeing no issue so far. FX
Re: Darwin: Replace environment runpath with embedded [PR88590]
Hi, > If I remove the line from libtool.m4 (innocent smile) I see that > fixincludes/configure is better, and it does not appear to change the > regenerated files in other directories (I didn’t do a build yet, just tried > to regenerate with some manual autoconf invocations). I have done a full rebuild, and having looked more at the structure of libtool.m4 I am now convinced that having that line outside of the scope of _LT_DARWIN_LINKER_FEATURES is simply wrong (probably a copy-pasto or leftover from earlier code). Having rebuilt everything, it only manifests itself in fixincludes/ChangeLog. Iain is traveling right now, but when he is back I would like to submit this patch if he agrees with the above. It was regtested on x86_64-apple-darwin21. Thomas, can you confirm that it also fixes things for you? Although I don’t see why it wouldn’t. FX 0001-libsanitizer-fix-build-on-darwin.patch Description: Binary data
Re: [PATCH 1/4] libsanitizer: merge from upstream (c425db2eb558c263)
I have reported the issue to llvm at https://github.com/llvm/llvm-project/issues/72639 There is a trivial one-line patch to fix it, which I hope they will accept. Not sure what our policy is here, in the meantime. FX
Re: [PATCH 1/4] libsanitizer: merge from upstream (c425db2eb558c263)
Heads-up: this broke bootstrap on darwin: > +typedef void (^dispatch_mach_handler_t)(dispatch_mach_reason reason, > +dispatch_mach_msg_t message, > +mach_error_t error); Blocks are an Apple/clang extension, not (yet) supported by GCC. FX
Re: [committed] libcpp: Regenerate config.in
Hi, I have a related question. When I bootstrap gcc in maintainer mode on x86_64-darwin, I get the following diff in the sources: diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in index c0aa51af3f0..17da7bb9867 100644 --- a/libstdc++-v3/config.h.in +++ b/libstdc++-v3/config.h.in @@ -167,7 +167,7 @@ /* Define to 1 if you have the `hypotl' function. */ #undef HAVE_HYPOTL -/* Define if you have the iconv() function. */ +/* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ which I think it due to commit db50aea62595452db12565186cb520728540d987 that modified config/iconv.m4. But I am wondering: why am I the only one to see that? It appears the bot builders and not catching it. Do you have any idea? Thanks, FX
Re: Darwin: Replace environment runpath with embedded [PR88590]
> So I currently see the following in my build logs: > >[...] >mkdir -p -- ./fixincludes >Configuring in ./fixincludes >configure: creating cache ./config.cache >[...]/source-gcc/fixincludes/configure: line 3030: > enable_darwin_at_rpath_--srcdir=[...]/source-gcc/fixincludes=no: No such file > or directory >checking build system type... x86_64-pc-linux-gnu >checking host system type... x86_64-pc-linux-gnu >checking target system type... nvptx-unknown-none >[...] > > I'm not convinced that's achieving what it means to achieve? I’ve tried to understand where that line gets expanded from: >>> +enable_darwin_at_rpath_$1=no It comes from: > _LT_TAGVAR(enable_darwin_at_rpath, $1)=no in the top-level libtool.m4. I can’t say that I understand why that line is there. All the other definitions using this structure are all inside the definition of _LT_ prefixed functions, defined by m4_defun. This one line is alone, outside of any function. If I remove the line from libtool.m4 (innocent smile) I see that fixincludes/configure is better, and it does not appear to change the regenerated files in other directories (I didn’t do a build yet, just tried to regenerate with some manual autoconf invocations). Food for thought. FX
Re: gfortran.dg/dg.exp debug messages pollute test output
> FX submitted the patch series, I can find the reference if you need it. Patch was submitted in this thread: https://gcc.gnu.org/pipermail/gcc-patches/2023-September/630096.html >> Besides, >> it's unclear if those messages can just be removed (they are pretty >> cryptic as is) or at least changed to use verbose instead of puts. >> Please fix. I don’t see value in this output, so I think it’s best to remove the puts calls entirely. Attached patch does that. Testing under progress, OK if it passes? (or does that count as obvious fix-up of the previous patch) FX 0001-Testsuite-silence-some-noise-in-output.patch Description: Binary data
Re: [PATCH] Testsuite, i386: Mark test as requiring dfp
kind ping for this easy patch > Le 30 oct. 2023 à 15:19, FX Coudert a écrit : > > Hi, > > The test is currently failing on x86_64-apple-darwin with "decimal > floating-point not supported for this target”. > Marking the test as requiring dfp fixes the issue. > > OK to push? > > FX > 0001-Testsuite-i386-Mark-test-as-requiring-dfp.patch Description: Binary data
Re: [PATCH] Testsuite, i386: Fix test by passing -march
> Well It can fail on x86_64-linux-gnu too if GCC was configured with > --with-arch=core2 for an example. > So having it, in this case, not being darwin specific would be > beneficial for all x86_64/i?86 targets. I pushed it as-is, meaning it will indeed apply to all x86_64/i?86 targets. FX
Re: Darwin: Replace environment runpath with embedded [PR88590]
Hi, > +enable_darwin_at_rpath_$1=no I actually don’t understand why this one would have $1 in the name, unlike all other regenerated configure files. What value do we expect for $1 at this point in the file? That’s just plain weird. FX
[PATCH] Testsuite, i386: Mark test as requiring ifunc
Hi, The test is currently failing on x86_64-apple-darwin. Marking the test as requiring ifunc fixes the issue. OK to push? FX 0001-Testsuite-i386-Mark-test-as-requiring-ifunc.patch Description: Binary data
[PATCH] Testsuite, i386: Mark test as requiring dfp
Hi, The test is currently failing on x86_64-apple-darwin with "decimal floating-point not supported for this target”. Marking the test as requiring dfp fixes the issue. OK to push? FX 0001-Testsuite-i386-Mark-test-as-requiring-dfp.patch Description: Binary data
[PATCH] Testsuite, Darwin: Fix trampoline warning
Heap-based trampolines are enabled on darwin20 and later, meaning that no warning is emitted. Fixes the test failure on x86_64-apple-darwin21 OK to push? FX 0001-Testsuite-Darwin-Fix-trampoline-warning.patch Description: Binary data
[PATCH] Testsuite, i386: Fix test by passing -march
Hi, The newly introduced test gcc.target/i386/pr111698.c currently fails on Darwin, where the default arch is core2. Andrew suggested in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112287 to pass a recent value to -march, and I can confirm that it fixes the testsuite failure on x86_64-apple-darwin21. OK to push? FX 0001-Testsuite-i386-Fix-test-by-passing-march.patch Description: Binary data
[PATCH] Testsuite, Darwin: skip PIE test
Hi, The recent commit of https://gcc.gnu.org/pipermail/gcc-patches/2023-October/634347.html has made this test invalid. We now don’t emit __PIE__, and the test should be skipped on darwin. Fixes the new failure on x86_64-apple-darwin21. OK to push? FX 0001-Testsuite-Darwin-skip-PIE-test.patch Description: Binary data
Re: Darwin: Replace environment runpath with embedded [PR88590]
Thanks a lot Alexandre for the review! FX
Re: [PATCH] Testsuite, DWARF2: adjust regexp to match darwin output
Thanks Jeff, pushed as 94e68ce96c285e479736851f1ad8cc87c8c3ff0c FX
Re: [PATCH] Testsuite, DWARF2: adjust regexp to match darwin output
ping**2 > Hi, > > This was a painful one to fix, because I hate regexps, especially when they > are quoted. On darwin, we have this failure: > >FAIL: gcc.dg/debug/dwarf2/inline4.c scan-assembler > DW_TAG_inlined_subroutine[^(]*([^)]*)[^(]*(DIE > (0x[0-9a-f]*) DW_TAG_formal_parameter[^(]*(DIE > (0x[0-9a-f]*) DW_TAG_variable > > That hideous regexp is trying to match (generated on Linux): > >>.uleb128 0x4# (DIE (0x5c) DW_TAG_inlined_subroutine) >>.long 0xa0# DW_AT_abstract_origin >>.quad .LBI4 # DW_AT_entry_pc >>.byte .LVU2 # DW_AT_GNU_entry_view >>.quad .LBB4 # DW_AT_low_pc >>.quad .LBE4-.LBB4 # DW_AT_high_pc >>.byte 0x1 # DW_AT_call_file (u.c) >>.byte 0xf # DW_AT_call_line >>.byte 0x14# DW_AT_call_column >>.uleb128 0x5# (DIE (0x7d) DW_TAG_formal_parameter) >>.long 0xad# DW_AT_abstract_origin >>.long .LLST0 # DW_AT_location >>.long .LVUS0 # DW_AT_GNU_locviews >>.uleb128 0x6# (DIE (0x8a) DW_TAG_variable) > > It is using the parentheses to check what is between > DW_TAG_inlined_subroutine, DW_TAG_formal_parameter and DW_TAG_variable. > There’s only one block of parentheses in the middle, that "(u.c)”. However, > on darwin, the generated output is more compact: > >>.uleb128 0x4; (DIE (0x188) DW_TAG_inlined_subroutine) >>.long 0x1b8 ; DW_AT_abstract_origin >>.quad LBB4; DW_AT_low_pc >>.quad LBE4; DW_AT_high_pc >>.uleb128 0x5; (DIE (0x19d) DW_TAG_formal_parameter) >>.long 0x1c6 ; DW_AT_abstract_origin >>.uleb128 0x6; (DIE (0x1a2) DW_TAG_variable) > > I think that’s valid as well, and the test should pass (what the test really > wants to check is that there is no DW_TAG_lexical_block emitted there, see > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37801 for its origin). It could > be achieved in two ways: > > 1. making darwin emit the DW_AT_call_file > 2. adjusting the regexp to match, making the internal block of parentheses > optional > > I chose the second approach. It makes the test pass on darwin. If someone can > test it on linux, it’d be appreciated :) I don’t have ready access to such a > system right now. > > Once that passes, OK to commit? > FX 0001-Testsuite-DWARF2-adjust-regexp-to-match-darwin-outpu.patch Description: Binary data
[PATCH, pushed] testsuite: adjust for darwin linker warning
Pushed as obvious to fix two testsuite FAILs on darwin with recent macOS linkers when -no_pie is passed. FX 0001-testsuite-adjust-for-darwin-linker-warning.patch Description: Binary data
Re: [PATCH] core: Support heap-based trampolines
Hi, ping**2 on the revised patch, for Richard or another global reviewer. So far all review feedback is that it’s a step forward, and it’s been widely used for both aarch64-darwin and x86_64-darwin distributions for almost three years now. OK to commit? FX > Le 5 août 2023 à 16:20, FX Coudert a écrit : > > Hi Richard, > > Thanks for your feedback. Here is an amended version of the patch, taking > into consideration your requests and the following discussion. There is no > configure option for the libgcc part, and the documentation is amended. The > patch is split into three commits for core, target and libgcc. > > Currently regtesting on x86_64 linux and darwin (it was fine before I split > up into three commits, so I’m re-testing to make sure I didn’t screw anything > up). > > OK to commit? > FX 0001-core-Support-heap-based-trampolines.patch Description: Binary data 0002-target-Support-heap-based-trampolines.patch Description: Binary data 0003-libgcc-support-heap-based-trampolines.patch Description: Binary data
Re: Testsuite: fix contructor priority test
Hi, I was about to ping the attached patch, and realised it bordered on obvious, so I pushed it directly. FX > Le 19 août 2023 à 22:40, FX Coudert a écrit : > > Bordering on obvious, tested on darwin where the test case fails before (and > now passes). > > OK to commit? > FX > > <0001-Testsuite-fix-contructor-priority-test.patch> 0001-Testsuite-fix-contructor-priority-test.patch Description: Binary data
Re: [PATCH] Darwin: homogenize spelling of macOS
Hi, Thanks Sandra and Iain. Patch pushed. FX
[PATCH] Darwin: homogenize spelling of macOS
This patch homogenizes to some extent the use of “Mac OS X” or “OS X” or “Mac OS” in the gcc/ folder to “macOS”, which is the modern way of writing it. It is not a global replacement though, and each use was audited. - When referring to specific versions that used the “OS X” or “Mac OS” as their name, it was kept. - All uses referring to powerpc*-apple-darwin* were kept as-is, because those versions all predate the change to “macOS”. - I did not touch Ada or D - I did not touch testsuite comments Tested by building on x86_64-apple-darwin, and generating the docs. OK to push? FX 0001-Darwin-homogenize-spelling-of-macOS.patch Description: Binary data
Re: Analyzer failure due to missing header
> std::max and std::min, introduced by d99d73c77d1e and 2bad0eeb5573, are not > available because is not included. I originally thought this was only seen in cross-compilers, but it actually broke bootstrap on darwin. Attached patch restores it, OK to commit? FX 0001-Analyzer-include-algorithm-header.patch Description: Binary data
Re: [PATCH] Testsuite, DWARF2: adjust regexp to match darwin output
ping > Hi, > > This was a painful one to fix, because I hate regexps, especially when they > are quoted. On darwin, we have this failure: > >FAIL: gcc.dg/debug/dwarf2/inline4.c scan-assembler > DW_TAG_inlined_subroutine[^(]*([^)]*)[^(]*(DIE > (0x[0-9a-f]*) DW_TAG_formal_parameter[^(]*(DIE > (0x[0-9a-f]*) DW_TAG_variable > > That hideous regexp is trying to match (generated on Linux): > >>.uleb128 0x4# (DIE (0x5c) DW_TAG_inlined_subroutine) >>.long 0xa0# DW_AT_abstract_origin >>.quad .LBI4 # DW_AT_entry_pc >>.byte .LVU2 # DW_AT_GNU_entry_view >>.quad .LBB4 # DW_AT_low_pc >>.quad .LBE4-.LBB4 # DW_AT_high_pc >>.byte 0x1 # DW_AT_call_file (u.c) >>.byte 0xf # DW_AT_call_line >>.byte 0x14# DW_AT_call_column >>.uleb128 0x5# (DIE (0x7d) DW_TAG_formal_parameter) >>.long 0xad# DW_AT_abstract_origin >>.long .LLST0 # DW_AT_location >>.long .LVUS0 # DW_AT_GNU_locviews >>.uleb128 0x6# (DIE (0x8a) DW_TAG_variable) > > It is using the parentheses to check what is between > DW_TAG_inlined_subroutine, DW_TAG_formal_parameter and DW_TAG_variable. > There’s only one block of parentheses in the middle, that "(u.c)”. However, > on darwin, the generated output is more compact: > >>.uleb128 0x4; (DIE (0x188) DW_TAG_inlined_subroutine) >>.long 0x1b8 ; DW_AT_abstract_origin >>.quad LBB4; DW_AT_low_pc >>.quad LBE4; DW_AT_high_pc >>.uleb128 0x5; (DIE (0x19d) DW_TAG_formal_parameter) >>.long 0x1c6 ; DW_AT_abstract_origin >>.uleb128 0x6; (DIE (0x1a2) DW_TAG_variable) > > I think that’s valid as well, and the test should pass (what the test really > wants to check is that there is no DW_TAG_lexical_block emitted there, see > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37801 for its origin). It could > be achieved in two ways: > > 1. making darwin emit the DW_AT_call_file > 2. adjusting the regexp to match, making the internal block of parentheses > optional > > I chose the second approach. It makes the test pass on darwin. If someone can > test it on linux, it’d be appreciated :) I don’t have ready access to such a > system right now. > > Once that passes, OK to commit? > FX > 0001-Testsuite-DWARF2-adjust-regexp-to-match-darwin-outpu.patch Description: Binary data
Re: [PATCH] libgomp, testsuite: Do not call nonstandard functions on darwin
> Revised patch. I does the job on darwin, can you check that it still tests > the functions on Linux? > And if so, OK to commit? With the correct file, sorry. 0001-libgomp-testsuite-Do-not-call-nonstandard-functions.patch Description: Binary data
Re: [PATCH] libgomp, testsuite: Do not call nonstandard functions on darwin
Revised patch. I does the job on darwin, can you check that it still tests the functions on Linux? And if so, OK to commit? FX 0001-Testsuite-DWARF2-adjust-regexp-to-match-darwin-outpu.patch Description: Binary data
Re: [PATCH] libgomp, testsuite: Do not call nonstandard functions on darwin
>> I understand, I wanted to not just report the issue but propose an option. >> It seems a bit heavy to design an effective target just for one test, >> though, no? > > It has the advantage of getting it right on all current and future targets. Something like this? (not tested yet) diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp index 2f9e538278f..85d467434e9 100644 --- a/libgomp/testsuite/lib/libgomp.exp +++ b/libgomp/testsuite/lib/libgomp.exp @@ -377,6 +377,24 @@ proc offload_target_to_openacc_device_type { offload_target } { } } +# Return 1 if certain nonstandard math functions are available +# on the target. +proc libgomp_check_effective_target_nonstandard_math_functions { } { +return [check_no_compiler_messages nonstandard_math_functions executable { +#include +int main() { + float x = 42; + double y = 42; + x = gammaf (x); + x = __builtin_scalbf (x, 2.f); + x =__builtin_significandf (x); + y = gamma (y); + y = __builtin_scalb (y, 2.); + y =__builtin_significand (y); + return 0; +} } "-lm" ] +} + # Return 1 if compiling for the specified offload target # Takes -foffload=... into account by checking OFFLOAD_TARGET_NAMES= # in the -v compiler output.
Re: [PATCH] libgomp, testsuite: Do not call nonstandard functions on darwin
> I don't like the #if !defined(__APPLE__) conditionals everywhere in the > test, I think much cleaner would be to add an effective target to test > for those functions I understand, I wanted to not just report the issue but propose an option. It seems a bit heavy to design an effective target just for one test, though, no? Another possibility would be to replace #if !defined(__APPLE__) by #if defined(__linux__), or glibc? FX
[committed] Testsuite, darwin: account for macOS 13 and 14
Committed as obvious, making gcc.dg/darwin-minversion-link.c pass on macOS 13 and 14 (darwin22 and darwin23, respectively). FX 0001-Testsuite-darwin-account-for-macOS-13-and-14.patch Description: Binary data
[PATCH] libgomp, testsuite: Do not call nonstandard functions on darwin
Hi, testsuite/libgomp.c/simd-math-1.c calls nonstandard functions that are not available on darwin (and possibly other systems?). Because I did not want to disable their testing completely, I suggest we simply use preprocessor macros to avoid them on darwin. This fixes the test failure on aarch64-apple-darwin. OK to commit? FX 0001-libgomp-testsuite-Do-not-call-nonstandard-functions-.patch Description: Binary data
[PATCH, committed] Testsuite, darwin: Fix analyzer testcases
Committed as obvious, fixing three more darwin-specific failures in analyzer testsuite. This fixes: FAIL: gcc.dg/plugin/taint-CVE-2011-0521-5.c -fplugin=./analyzer_kernel_plugin.so (test for warnings, line 39) FAIL: gcc.dg/plugin/taint-CVE-2011-0521-6.c -fplugin=./analyzer_kernel_plugin.so (test for warnings, line 36) XPASS: gcc.dg/plugin/taint-CVE-2011-0521-5-fixed.c -fplugin=./analyzer_kernel_plugin.so (test for bogus messages, line 39) Committed to trunk, FX 0001-Testsuite-darwin-Fix-analyzer-testcases.patch Description: Binary data
Re: [PATCH] Testsuite: mark IPA test as requiring alias support
Hi, > IMO, changes like this qualify as obvious, so I’d go ahead (thanks for this > test fail triage) Makes sense. I’ve committed, as well as another one, attached, slightly amending the expected pattern of a sarif plugin test. FX 0001-Testsuite-plugin-make-testcase-pattern-more-flexible.patch Description: Binary data
[PATCH] Testsuite: mark IPA test as requiring alias support
Hi, The fact that this test needs alias support was indicated in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85656 but never committed. Without it, the test fails on darwin. OK to commit? FX 0001-Testsuite-mark-IPA-test-as-requiring-alias-support.patch Description: Binary data