diff --git a/Makefile b/Makefile index ce97c5efa..61b226bac 100644 --- a/Makefile +++ b/Makefile @@ -134,6 +134,20 @@ ifneq ($(OS),bsd) CWFLAGS+=-Wno-error=unused-result endif +# glibc 2.24 deprecates readdir_r; iff glibc >=2.24, +# don't upgrade 'deprecated declarations' warnings to errors +# dependency: `getconf`, which comes w/glibc +GLIBC := $(lastword $(shell getconf GNU_LIBC_VERSION)) +# dependency: none, uses make's native functions +GLIBC_MAJ := $(word 1, $(subst ., ,$(GLIBC))) +GLIBC_MIN := $(word 2, $(subst ., ,$(GLIBC))) +# dependency: `expr` shell built-in +GLIBC_GE_2_24 := $(shell expr $(GLIBC_MAJ) ">" 2 "|" \ + $(GLIBC_MAJ) "=" 2 "&" $(GLIBC_MIN) ">=" 24) +ifeq (1,$(GLIBC_GE_2_24)) + CWFLAGS+=-Wno-error=deprecated-declarations +endif + ifdef NO_SILENT_RULES %.o: %.c $(CORE) $(CC) -c $(CWFLAGS) $(CFLAGS) -o $@ $< diff --git a/include/noun/allocate.h b/include/noun/allocate.h index 7ab6b2139..68de4afb8 100644 --- a/include/noun/allocate.h +++ b/include/noun/allocate.h @@ -23,7 +23,7 @@ **/ /* u3a_bits: number of bits in word-addressed pointer. 29 == 2GB. */ -# define u3a_bits 29 +# define u3a_bits U3_OS_LoomBits /* u3a_page: number of bits in word-addressed page. 12 == 16Kbyte page. */