[16/17] Regex: Define __USE_GNU for non-GLIBC systems.

Message ID 201712080919.vB89JOau005651@skeeve.com
State New, archived
Headers

Commit Message

Arnold Robbins Dec. 8, 2017, 9:19 a.m. UTC
  This patch defines __USE_GNU for non-GLIBC systems. For example, *BSD
need it.

2017-12-05         Arnold D. Robbins     <arnold@skeeve.com>

	* posix/regex.h: Define __USE_GNU if not _LIBC. Needed when
	regex is being used standalone on non-GLIBC systems.
  

Comments

Joseph Myers Dec. 8, 2017, 11:23 a.m. UTC | #1
On Fri, 8 Dec 2017, Arnold Robbins wrote:

> This patch defines __USE_GNU for non-GLIBC systems. For example, *BSD
> need it.

_LIBC refers to glibc being *built*.  This change would cause the header 
to expose inappropriate symbols when used in an installation of glibc.
  
Arnold Robbins Dec. 8, 2017, 12:48 p.m. UTC | #2
Joseph Myers <joseph@codesourcery.com> wrote:

> On Fri, 8 Dec 2017, Arnold Robbins wrote:
>
> > This patch defines __USE_GNU for non-GLIBC systems. For example, *BSD
> > need it.
>
> _LIBC refers to glibc being *built*.  This change would cause the header 
> to expose inappropriate symbols when used in an installation of glibc.
>
> -- 
> Joseph S. Myers
> joseph@codesourcery.com

There don't seem to be other uses of _LIBC in the regex.h header.
All I know is that the __USE_GNU is needed on non-GLIBC systems.
Removing that bit doesn't affect compiling on Linux, nor does having
it there.

So, I don't see the harm in it, but I'm not a GLIBC guy, so I'm
probably still missing something.

Arnold
  

Patch

diff --git a/posix/regex.h b/posix/regex.h
index 8970e37..a3f41b5 100644
--- a/posix/regex.h
+++ b/posix/regex.h
@@ -22,6 +22,10 @@ 
 
 #include <sys/types.h>
 
+#ifndef _LIBC
+#define __USE_GNU	1
+#endif
+
 /* Allow the use in C++ code.  */
 #ifdef __cplusplus
 extern "C" {