aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am4
-rw-r--r--vm/vm_map.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am
index 684344e2..33f770f6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -167,13 +167,13 @@ gnumach_o_LINK = $(LD) $(LDFLAGS) -u _start -r -o $@
noinst_PROGRAMS += \
gnumach.o
-# This is the list of routines we decide is OK to steal from the C library.
+# This is the list of routines we decide is OK to steal from the C library or libgcc.
clib_routines := htonl htons ntohl ntohs \
udivdi3 __udivdi3 __udivmoddi4 __umoddi3 \
__divdi3 __moddi3 \
__rel_iplt_start __rel_iplt_end \
__rela_iplt_start __rela_iplt_end \
- __ffsdi2 ffs \
+ __ffsdi2 \
_START _start etext _edata end _end # actually ld magic, not libc.
gnumach-undef: gnumach.$(OBJEXT)
$(NM_V) $(NM) -u $< | sed 's/ *U *//' | sort -u > $@
diff --git a/vm/vm_map.c b/vm/vm_map.c
index ceeb91ee..4200a239 100644
--- a/vm/vm_map.c
+++ b/vm/vm_map.c
@@ -685,10 +685,10 @@ vm_map_find_entry_anywhere(struct vm_map *map,
if (((mask + 1) & mask) != 0) {
/* We have high bits in addition to the low bits */
- int first0 = ffs(~mask); /* First zero after low bits */
+ int first0 = __builtin_ffs(~mask); /* First zero after low bits */
vm_offset_t lowmask = (1UL << (first0-1)) - 1; /* low bits */
vm_offset_t himask = mask - lowmask; /* high bits */
- int second1 = ffs(himask); /* First one after low bits */
+ int second1 = __builtin_ffs(himask); /* First one after low bits */
max = 1UL << (second1-1);