cdf-copy.cc doesn't compile on Solaris:

/vol/gcc/src/hg/master/local/gcc/cobol/cdf-copy.cc: In member function ‘int 
copybook_elem_t::open_file(const char*, bool)’:
/vol/gcc/src/hg/master/local/gcc/cobol/cdf-copy.cc:317:34: error: ‘GLOB_BRACE’ 
was not declared in this scope; did you mean ‘GLOB_ERR’?
  317 |   static int flags = GLOB_MARK | GLOB_BRACE | GLOB_TILDE;
      |                                  ^~~~~~~~~~
      |                                  GLOB_ERR
/vol/gcc/src/hg/master/local/gcc/cobol/cdf-copy.cc:317:47: error: ‘GLOB_TILDE’ 
was not declared in this scope
  317 |   static int flags = GLOB_MARK | GLOB_BRACE | GLOB_TILDE;
      |                                               ^~~~~~~~~~

GLOB_BRACE and GLOB_TILDE are BSD extensions not in POSIX.1, thus
missing on Solaris probably due to its System V heritage.

This patch introduces fallback definitions to avoid this.

Bootstrapped without regressions on amd64-pc-solaris2.11,
sparcv9-sun-solaris2.11, and x86_64-pc-linux-gnu.

Ok for trunk?

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2025-04-08  Rainer Orth  <r...@cebitec.uni-bielefeld.de>

        gcc/cobol:
        PR cobol/119217
        * cdf-copy.cc (GLOB_BRACE): Define fallback.
        (GLOB_TILDE): Likewise.

# HG changeset patch
# Parent  a65df53e81219bab53c7be13dc884eb08ee84d7b
cobol: Don't require GLOB_BRACE etc. [PR119217]

diff --git a/gcc/cobol/cdf-copy.cc b/gcc/cobol/cdf-copy.cc
--- a/gcc/cobol/cdf-copy.cc
+++ b/gcc/cobol/cdf-copy.cc
@@ -41,6 +41,16 @@
 #include "util.h"
 #include "copybook.h"
 
+// GLOB_BRACE and GLOB_TILDE are BSD extensions.  Provide fallback definitions
+// if necessary.
+#ifndef GLOB_BRACE
+#define GLOB_BRACE 0
+#endif
+
+#ifndef GLOB_TILDE
+#define GLOB_TILDE 0
+#endif
+
 #define COUNT_OF(X) (sizeof(X) / sizeof(X[0]))
 
 /*

Reply via email to