mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	Merge pull request #1357 from emersion/xopen-source
Use _POSIX_C_SOURCE, use shm_open
This commit is contained in:
		
						commit
						2bf482e90f
					
				
					 20 changed files with 42 additions and 74 deletions
				
			
		| 
						 | 
					@ -1,4 +1,3 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					 | 
				
			||||||
#define _POSIX_C_SOURCE 199309L
 | 
					#define _POSIX_C_SOURCE 199309L
 | 
				
			||||||
#include <libavformat/avformat.h>
 | 
					#include <libavformat/avformat.h>
 | 
				
			||||||
#include <libavutil/display.h>
 | 
					#include <libavutil/display.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,12 +1,12 @@
 | 
				
			||||||
#include <getopt.h>
 | 
					#include <getopt.h>
 | 
				
			||||||
#include <pthread.h>
 | 
					#include <pthread.h>
 | 
				
			||||||
 | 
					#include <stdbool.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
#include <wayland-client-protocol.h>
 | 
					#include <wayland-client-protocol.h>
 | 
				
			||||||
#include <wayland-client.h>
 | 
					#include <wayland-client.h>
 | 
				
			||||||
#include <wlr/util/log.h>
 | 
					 | 
				
			||||||
#include "idle-client-protocol.h"
 | 
					#include "idle-client-protocol.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct org_kde_kwin_idle *idle_manager = NULL;
 | 
					static struct org_kde_kwin_idle *idle_manager = NULL;
 | 
				
			||||||
| 
						 | 
					@ -109,8 +109,6 @@ void *main_loop(void *data) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main(int argc, char *argv[]) {
 | 
					int main(int argc, char *argv[]) {
 | 
				
			||||||
	wlr_log_init(WLR_DEBUG, NULL);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (parse_args(argc, argv) != 0) {
 | 
						if (parse_args(argc, argv) != 0) {
 | 
				
			||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
#define _POSIX_C_SOURCE 200809L
 | 
					#define _POSIX_C_SOURCE 200809L
 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <errno.h>
 | 
					#include <errno.h>
 | 
				
			||||||
 | 
					#include <stdbool.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
| 
						 | 
					@ -9,7 +10,6 @@
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
#include <wayland-client.h>
 | 
					#include <wayland-client.h>
 | 
				
			||||||
#include <wayland-egl.h>
 | 
					#include <wayland-egl.h>
 | 
				
			||||||
#include <wlr/render/egl.h>
 | 
					 | 
				
			||||||
#include "input-method-unstable-v2-client-protocol.h"
 | 
					#include "input-method-unstable-v2-client-protocol.h"
 | 
				
			||||||
#include "text-input-unstable-v3-client-protocol.h"
 | 
					#include "text-input-unstable-v3-client-protocol.h"
 | 
				
			||||||
#include "xdg-shell-client-protocol.h"
 | 
					#include "xdg-shell-client-protocol.h"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -55,11 +55,11 @@ examples = {
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	'screenshot': {
 | 
						'screenshot': {
 | 
				
			||||||
		'src': 'screenshot.c',
 | 
							'src': 'screenshot.c',
 | 
				
			||||||
		'dep': [wayland_client, wlr_protos, wlroots],
 | 
							'dep': [wayland_client, wlr_protos, rt],
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	'idle': {
 | 
						'idle': {
 | 
				
			||||||
		'src': 'idle.c',
 | 
							'src': 'idle.c',
 | 
				
			||||||
		'dep': [wayland_client, wlr_protos, wlroots, threads],
 | 
							'dep': [wayland_client, wlr_protos, threads],
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	'idle-inhibit': {
 | 
						'idle-inhibit': {
 | 
				
			||||||
		'src': 'idle-inhibit.c',
 | 
							'src': 'idle-inhibit.c',
 | 
				
			||||||
| 
						 | 
					@ -75,7 +75,7 @@ examples = {
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	'gamma-control': {
 | 
						'gamma-control': {
 | 
				
			||||||
		'src': 'gamma-control.c',
 | 
							'src': 'gamma-control.c',
 | 
				
			||||||
		'dep': [wayland_client, wayland_cursor, wlr_protos, wlroots],
 | 
							'dep': [wayland_client, wayland_cursor, wlr_protos, math],
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	'pointer-constraints': {
 | 
						'pointer-constraints': {
 | 
				
			||||||
		'src': 'pointer-constraints.c',
 | 
							'src': 'pointer-constraints.c',
 | 
				
			||||||
| 
						 | 
					@ -91,25 +91,24 @@ examples = {
 | 
				
			||||||
			threads,
 | 
								threads,
 | 
				
			||||||
			wayland_client,
 | 
								wayland_client,
 | 
				
			||||||
			wlr_protos,
 | 
								wlr_protos,
 | 
				
			||||||
			wlroots,
 | 
					 | 
				
			||||||
		],
 | 
							],
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	'screencopy': {
 | 
						'screencopy': {
 | 
				
			||||||
		'src': 'screencopy.c',
 | 
							'src': 'screencopy.c',
 | 
				
			||||||
		'dep': [libpng, wayland_client, wlr_protos, wlroots],
 | 
							'dep': [libpng, wayland_client, wlr_protos, rt],
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	'toplevel-decoration': {
 | 
						'toplevel-decoration': {
 | 
				
			||||||
		'src': 'toplevel-decoration.c',
 | 
							'src': 'toplevel-decoration.c',
 | 
				
			||||||
		'dep': [wayland_client, wlr_protos, wlroots],
 | 
							'dep': [wayland_client, wlr_protos, wlroots],
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	'input-method': {
 | 
						'input-method': {
 | 
				
			||||||
	    'src': 'input-method.c',
 | 
							'src': 'input-method.c',
 | 
				
			||||||
	    'dep': [wayland_client, wlr_protos, wlroots] + libepoll,
 | 
							'dep': [wayland_client, wlr_protos] + libepoll,
 | 
				
			||||||
    },
 | 
						},
 | 
				
			||||||
	'text-input': {
 | 
						'text-input': {
 | 
				
			||||||
	    'src': 'text-input.c',
 | 
							'src': 'text-input.c',
 | 
				
			||||||
	    'dep': [wayland_cursor, wayland_client, wlr_protos, wlroots],
 | 
							'dep': [wayland_cursor, wayland_client, wlr_protos, wlroots],
 | 
				
			||||||
    },
 | 
						},
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
foreach name, info : examples
 | 
					foreach name, info : examples
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,4 @@
 | 
				
			||||||
#define _POSIX_C_SOURCE 200112L
 | 
					#define _POSIX_C_SOURCE 200112L
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					 | 
				
			||||||
#include <GLES2/gl2.h>
 | 
					#include <GLES2/gl2.h>
 | 
				
			||||||
#include <limits.h>
 | 
					#include <limits.h>
 | 
				
			||||||
#include <math.h>
 | 
					#include <math.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,8 +21,7 @@
 | 
				
			||||||
 * DEALINGS IN THE SOFTWARE.
 | 
					 * DEALINGS IN THE SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					#define _POSIX_C_SOURCE 200112L
 | 
				
			||||||
#define _POSIX_C_SOURCE 199309L
 | 
					 | 
				
			||||||
#include <errno.h>
 | 
					#include <errno.h>
 | 
				
			||||||
#include <fcntl.h>
 | 
					#include <fcntl.h>
 | 
				
			||||||
#include <limits.h>
 | 
					#include <limits.h>
 | 
				
			||||||
| 
						 | 
					@ -65,12 +64,17 @@ static const struct format formats[] = {
 | 
				
			||||||
	{WL_SHM_FORMAT_ABGR8888, false},
 | 
						{WL_SHM_FORMAT_ABGR8888, false},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int backingfile(off_t size) {
 | 
					static struct wl_buffer *create_shm_buffer(enum wl_shm_format fmt,
 | 
				
			||||||
	char template[] = "/tmp/wlroots-shared-XXXXXX";
 | 
							int width, int height, int stride, void **data_out) {
 | 
				
			||||||
	int fd = mkstemp(template);
 | 
						int size = stride * height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const char shm_name[] = "/wlroots-screencopy";
 | 
				
			||||||
 | 
						int fd = shm_open(shm_name, O_RDWR | O_CREAT | O_EXCL, 0);
 | 
				
			||||||
	if (fd < 0) {
 | 
						if (fd < 0) {
 | 
				
			||||||
		return -1;
 | 
							fprintf(stderr, "shm_open failed\n");
 | 
				
			||||||
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						shm_unlink(shm_name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int ret;
 | 
						int ret;
 | 
				
			||||||
	while ((ret = ftruncate(fd, size)) == EINTR) {
 | 
						while ((ret = ftruncate(fd, size)) == EINTR) {
 | 
				
			||||||
| 
						 | 
					@ -78,20 +82,7 @@ static int backingfile(off_t size) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (ret < 0) {
 | 
						if (ret < 0) {
 | 
				
			||||||
		close(fd);
 | 
							close(fd);
 | 
				
			||||||
		return -1;
 | 
							fprintf(stderr, "ftruncate failed\n");
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	unlink(template);
 | 
					 | 
				
			||||||
	return fd;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static struct wl_buffer *create_shm_buffer(enum wl_shm_format fmt,
 | 
					 | 
				
			||||||
		int width, int height, int stride, void **data_out) {
 | 
					 | 
				
			||||||
	int size = stride * height;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	int fd = backingfile(size);
 | 
					 | 
				
			||||||
	if (fd < 0) {
 | 
					 | 
				
			||||||
		fprintf(stderr, "creating a buffer file for %d B failed: %m\n", size);
 | 
					 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,8 +21,7 @@
 | 
				
			||||||
 * DEALINGS IN THE SOFTWARE.
 | 
					 * DEALINGS IN THE SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					#define _POSIX_C_SOURCE 200112L
 | 
				
			||||||
#define _POSIX_C_SOURCE 199309L
 | 
					 | 
				
			||||||
#include <errno.h>
 | 
					#include <errno.h>
 | 
				
			||||||
#include <fcntl.h>
 | 
					#include <fcntl.h>
 | 
				
			||||||
#include <limits.h>
 | 
					#include <limits.h>
 | 
				
			||||||
| 
						 | 
					@ -35,7 +34,6 @@
 | 
				
			||||||
#include <sys/wait.h>
 | 
					#include <sys/wait.h>
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
#include <wayland-client.h>
 | 
					#include <wayland-client.h>
 | 
				
			||||||
#include <wlr/util/log.h>
 | 
					 | 
				
			||||||
#include "screenshooter-client-protocol.h"
 | 
					#include "screenshooter-client-protocol.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct wl_shm *shm = NULL;
 | 
					static struct wl_shm *shm = NULL;
 | 
				
			||||||
| 
						 | 
					@ -111,12 +109,18 @@ static const struct wl_registry_listener registry_listener = {
 | 
				
			||||||
	.global_remove = handle_global_remove,
 | 
						.global_remove = handle_global_remove,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int backingfile(off_t size) {
 | 
					static struct wl_buffer *create_shm_buffer(int width, int height,
 | 
				
			||||||
	char template[] = "/tmp/wlroots-shared-XXXXXX";
 | 
							void **data_out) {
 | 
				
			||||||
	int fd = mkstemp(template);
 | 
						int stride = width * 4;
 | 
				
			||||||
 | 
						int size = stride * height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const char shm_name[] = "/wlroots-screenshot";
 | 
				
			||||||
 | 
						int fd = shm_open(shm_name, O_RDWR | O_CREAT | O_EXCL, 0);
 | 
				
			||||||
	if (fd < 0) {
 | 
						if (fd < 0) {
 | 
				
			||||||
		return -1;
 | 
							fprintf(stderr, "shm_open failed\n");
 | 
				
			||||||
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						shm_unlink(shm_name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int ret;
 | 
						int ret;
 | 
				
			||||||
	while ((ret = ftruncate(fd, size)) == EINTR) {
 | 
						while ((ret = ftruncate(fd, size)) == EINTR) {
 | 
				
			||||||
| 
						 | 
					@ -124,21 +128,7 @@ static int backingfile(off_t size) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (ret < 0) {
 | 
						if (ret < 0) {
 | 
				
			||||||
		close(fd);
 | 
							close(fd);
 | 
				
			||||||
		return -1;
 | 
							fprintf(stderr, "ftruncate failed\n");
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	unlink(template);
 | 
					 | 
				
			||||||
	return fd;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static struct wl_buffer *create_shm_buffer(int width, int height,
 | 
					 | 
				
			||||||
		void **data_out) {
 | 
					 | 
				
			||||||
	int stride = width * 4;
 | 
					 | 
				
			||||||
	int size = stride * height;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	int fd = backingfile(size);
 | 
					 | 
				
			||||||
	if (fd < 0) {
 | 
					 | 
				
			||||||
		fprintf(stderr, "creating a buffer file for %d B failed: %m\n", size);
 | 
					 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -200,8 +190,6 @@ static void write_image(const char *filename, int width, int height,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main(int argc, char *argv[]) {
 | 
					int main(int argc, char *argv[]) {
 | 
				
			||||||
	wlr_log_init(WLR_DEBUG, NULL);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	struct wl_display * display = wl_display_connect(NULL);
 | 
						struct wl_display * display = wl_display_connect(NULL);
 | 
				
			||||||
	if (display == NULL) {
 | 
						if (display == NULL) {
 | 
				
			||||||
		fprintf(stderr, "failed to create display: %m\n");
 | 
							fprintf(stderr, "failed to create display: %m\n");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,3 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,3 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <strings.h>
 | 
					#include <strings.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					#define _POSIX_C_SOURCE 200809L
 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,3 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 500
 | 
					#define _POSIX_C_SOURCE 200809L
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <wayland-server.h>
 | 
					#include <wayland-server.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					#define _POSIX_C_SOURCE 200809L
 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@
 | 
				
			||||||
 * SOFTWARE.
 | 
					 * SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define _XOPEN_SOURCE 500
 | 
					#define _POSIX_C_SOURCE 200809L
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,3 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <fcntl.h>
 | 
					#include <fcntl.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					#define _POSIX_C_SOURCE 200809L
 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <fcntl.h>
 | 
					#include <fcntl.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,3 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <fcntl.h>
 | 
					#include <fcntl.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					#define _POSIX_C_SOURCE 200809L
 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include <fcntl.h>
 | 
					#include <fcntl.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					#define _POSIX_C_SOURCE 200809L
 | 
				
			||||||
#ifdef __FreeBSD__
 | 
					#ifdef __FreeBSD__
 | 
				
			||||||
// for SOCK_CLOEXEC
 | 
					// for SOCK_CLOEXEC
 | 
				
			||||||
#define __BSD_VISIBLE 1
 | 
					#define __BSD_VISIBLE 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,3 @@
 | 
				
			||||||
#define _XOPEN_SOURCE 700
 | 
					 | 
				
			||||||
#define _DEFAULT_SOURCE
 | 
					#define _DEFAULT_SOURCE
 | 
				
			||||||
#ifdef __FreeBSD__
 | 
					#ifdef __FreeBSD__
 | 
				
			||||||
// for SOCK_CLOEXEC
 | 
					// for SOCK_CLOEXEC
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue