mirror of
https://gitlab.freedesktop.org/libbsd/libbsd.git
synced 2025-01-09 03:08:38 +01:00
Handle glibc partial header inclusions
The glibc headers use selective inclusions through the __need_NAME mechanism to avoid circular dependencies. The problem is that if we are being overlaid, and have been requested a partial inclusion, when we pass control to the system header, then we might miss definitions needed by our own header, resulting in build failures. Workaround that by catching current partial requests, and skip the current inclusion.
This commit is contained in:
parent
ee04e8de14
commit
86cbff385a
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2004, 2005, 2009, 2011 Guillem Jover <guillem@hadrons.org>
|
||||
* Copyright © 2004-2005, 2009, 2011-2013 Guillem Jover <guillem@hadrons.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@ -24,12 +24,17 @@
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if defined(__need_FILE) || defined(__need___FILE)
|
||||
#define LIBBSD_STDIO_H_SKIP
|
||||
#endif
|
||||
|
||||
#ifdef LIBBSD_OVERLAY
|
||||
#include_next <stdio.h>
|
||||
#else
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
#ifndef LIBBSD_STDIO_H_SKIP
|
||||
#ifndef LIBBSD_STDIO_H
|
||||
#define LIBBSD_STDIO_H
|
||||
|
||||
@ -45,3 +50,5 @@ int fpurge(FILE *fp);
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
#endif
|
||||
#undef LIBBSD_STDIO_H_SKIP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2012 Guillem Jover <guillem@hadrons.org>
|
||||
* Copyright © 2012-2013 Guillem Jover <guillem@hadrons.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@ -24,12 +24,18 @@
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if defined(__need_wchar_t) || defined(__need_wint_t) || \
|
||||
defined(__need_mbstate_t)
|
||||
#define LIBBSD_WCHAR_H_SKIP
|
||||
#endif
|
||||
|
||||
#ifdef LIBBSD_OVERLAY
|
||||
#include_next <wchar.h>
|
||||
#else
|
||||
#include <wchar.h>
|
||||
#endif
|
||||
|
||||
#ifndef LIBBSD_WCHAR_H_SKIP
|
||||
#ifndef LIBBSD_WCHAR_H
|
||||
#define LIBBSD_WCHAR_H
|
||||
|
||||
@ -45,3 +51,5 @@ size_t wcslcpy(wchar_t *dst, const wchar_t *src, size_t size);
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
#endif
|
||||
#undef LIBBSD_WCHAR_H_SKIP
|
||||
|
Loading…
Reference in New Issue
Block a user