Merge branch 'build-mac-os-x'
This commit is contained in:
commit
1066676185
2
Makefile
2
Makefile
@ -67,7 +67,7 @@ include/GENERATED_tokens.h: include/GENERATED_call.h
|
|||||||
# and once as an object file for i3.
|
# and once as an object file for i3.
|
||||||
src/commands_parser.o: src/commands_parser.c ${HEADERS} ${CMDPARSE_HEADERS}
|
src/commands_parser.o: src/commands_parser.c ${HEADERS} ${CMDPARSE_HEADERS}
|
||||||
echo "[i3] CC $<"
|
echo "[i3] CC $<"
|
||||||
$(CC) $(CPPFLAGS) $(CFLAGS) -DTEST_PARSER -DLOGLEVEL="((uint64_t)1 << $(shell awk '/$(shell basename $< .c)/ { print NR; exit 0; }' loglevels.tmp))" -o test.commands_parser $< $(LIBS)
|
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -DTEST_PARSER -DLOGLEVEL="((uint64_t)1 << $(shell awk '/$(shell basename $< .c)/ { print NR; exit 0; }' loglevels.tmp))" -o test.commands_parser $< $(LIBS)
|
||||||
$(CC) $(CPPFLAGS) $(CFLAGS) -DLOGLEVEL="((uint64_t)1 << $(shell awk '/$(shell basename $< .c)/ { print NR; exit 0; }' loglevels.tmp))" -c -o $@ $<
|
$(CC) $(CPPFLAGS) $(CFLAGS) -DLOGLEVEL="((uint64_t)1 << $(shell awk '/$(shell basename $< .c)/ { print NR; exit 0; }' loglevels.tmp))" -c -o $@ $<
|
||||||
|
|
||||||
src/cfgparse.yy.o: src/cfgparse.l src/cfgparse.y.o ${HEADERS}
|
src/cfgparse.yy.o: src/cfgparse.l src/cfgparse.y.o ${HEADERS}
|
||||||
|
@ -68,7 +68,10 @@ CPPFLAGS += -DPCRE_HAS_UCP=1
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
LIBS += -lm
|
LIBS += -lm
|
||||||
|
# Darwin (Mac OS X) doesn’t have librt
|
||||||
|
ifneq ($(UNAME),Darwin)
|
||||||
LIBS += -lrt
|
LIBS += -lrt
|
||||||
|
endif
|
||||||
LIBS += -L $(TOPDIR)/libi3 -li3
|
LIBS += -L $(TOPDIR)/libi3 -li3
|
||||||
LIBS += $(call ldflags_for_lib, xcb-event,xcb-event)
|
LIBS += $(call ldflags_for_lib, xcb-event,xcb-event)
|
||||||
LIBS += $(call ldflags_for_lib, xcb-keysyms,xcb-keysyms)
|
LIBS += $(call ldflags_for_lib, xcb-keysyms,xcb-keysyms)
|
||||||
|
20
src/log.c
20
src/log.c
@ -18,6 +18,10 @@
|
|||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#if defined(__APPLE__)
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/sysctl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
@ -93,8 +97,15 @@ void init_logging(void) {
|
|||||||
* For 512 MiB of RAM this will lead to a 5 MiB log buffer.
|
* For 512 MiB of RAM this will lead to a 5 MiB log buffer.
|
||||||
* At the moment (2011-12-10), no testcase leads to an i3 log
|
* At the moment (2011-12-10), no testcase leads to an i3 log
|
||||||
* of more than ~ 600 KiB. */
|
* of more than ~ 600 KiB. */
|
||||||
long long physical_mem_bytes = (long long)sysconf(_SC_PHYS_PAGES) *
|
long long physical_mem_bytes;
|
||||||
sysconf(_SC_PAGESIZE);
|
#if defined(__APPLE__)
|
||||||
|
int mib[2] = { CTL_HW, HW_MEMSIZE };
|
||||||
|
size_t length = sizeof(long long);
|
||||||
|
sysctl(mib, 2, &physical_mem_bytes, &length, NULL, 0);
|
||||||
|
#else
|
||||||
|
physical_mem_bytes = (long long)sysconf(_SC_PHYS_PAGES) *
|
||||||
|
sysconf(_SC_PAGESIZE);
|
||||||
|
#endif
|
||||||
logbuffer_size = min(physical_mem_bytes * 0.01, shmlog_size);
|
logbuffer_size = min(physical_mem_bytes * 0.01, shmlog_size);
|
||||||
sasprintf(&shmlogname, "/i3-log-%d", getpid());
|
sasprintf(&shmlogname, "/i3-log-%d", getpid());
|
||||||
logbuffer_shm = shm_open(shmlogname, O_RDWR | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE);
|
logbuffer_shm = shm_open(shmlogname, O_RDWR | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE);
|
||||||
@ -199,11 +210,6 @@ static void vlog(const bool print, const char *fmt, va_list args) {
|
|||||||
vprintf(fmt, args);
|
vprintf(fmt, args);
|
||||||
} else {
|
} else {
|
||||||
len += vsnprintf(message + len, sizeof(message) - len, fmt, args);
|
len += vsnprintf(message + len, sizeof(message) - len, fmt, args);
|
||||||
if (len < 0 ) {
|
|
||||||
fprintf(stderr, "BUG: something is overflowing here. Dropping the log entry\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (len >= sizeof(message)) {
|
if (len >= sizeof(message)) {
|
||||||
fprintf(stderr, "BUG: single log message > 4k\n");
|
fprintf(stderr, "BUG: single log message > 4k\n");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user