https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124616

--- Comment #17 from Steve Kargl <kargl at gcc dot gnu.org> ---
(In reply to Steve Kargl from comment #16)
> This diff fixes the issue for me.  Not sure if it is correct for non-FreeBSD
> systems.
> 
> 
> diff --git a/libgcobol/posix/shim/open.cc b/libgcobol/posix/shim/open.cc
> index ed2a9d131b4..c15c55a6246 100644
> --- a/libgcobol/posix/shim/open.cc
> +++ b/libgcobol/posix/shim/open.cc
> @@ -35,19 +35,20 @@ posix_open(const char *pathname, int cbl_flags, int
> cbl_mode) {
>      { cbl::PSX_O_APPEND, O_APPEND },
>      { cbl::PSX_O_NONBLOCK, O_NONBLOCK },
>      { cbl::PSX_O_DSYNC, O_DSYNC },
> -    { cbl::PSX_O_LARGEFILE, O_LARGEFILE }, 
>      { cbl::PSX_O_SYNC, O_SYNC }, 
>      /*
>       * The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified in
>       * POSIX.1-2001, but are specified in POSIX.1-2008.  See open(2). 
>       */
>  #if defined(_POSIX_C_SOURCE) && 200809L <= (_POSIX_C_SOURCE - 0)
> +    { cbl::PSX_O_LARGEFILE, O_LARGEFILE }, 
>      { cbl::PSX_O_CLOEXEC, O_CLOEXEC }, 
>      { cbl::PSX_O_DIRECTORY, O_DIRECTORY }, 
>      { cbl::PSX_O_NOFOLLOW, O_NOFOLLOW }, 
>  #else
> +    { cbl::PSX_O_LARGEFILE, 0 },
>      { cbl::PSX_O_CLOEXEC, 0 }, 
> -    { cbl::PSX_O_DIRECTORY, 0 }, 
> +    { cbl::PSX_O_DIRECTORY, 0 },
>      { cbl::PSX_O_NOFOLLOW, 0 },     
>  #endif
>      /*

With this patch, I see

% env MAKE=gmake gmake check-cobol
                === cobol Summary ===

# of expected passes            7739
# of unexpected failures        96
# of expected failures          78
# of unresolved testcases       60
/home/kargl/gcc/obj/gcc/gcobol  version 17.0.0 20260813 (experimental) (GCC)

Many/most failures are ICEs.

Reply via email to