1
1
mirror of https://github.com/rui314/mold.git synced 2024-09-21 01:47:11 +03:00

Do not try to link with -ldl unconditionally

Some operating systems, like NetBSD, don't have a separate library for
dlopen(3). They have dl* functions in their libc.

Signed-off-by: Masatake Daimon <pho@NetBSD.org>
This commit is contained in:
Masatake Daimon 2022-01-19 11:00:41 +09:00 committed by PHO
parent fe209f3f4c
commit af05107964

View File

@ -33,7 +33,7 @@ CFLAGS += $(COMMON_FLAGS) $(EXTRA_CFLAGS)
CXXFLAGS ?= -O2
CXXFLAGS += $(COMMON_FLAGS) $(EXTRA_CXXFLAGS) -std=c++20 -fno-exceptions
CXXFLAGS += -DMOLD_VERSION=\"1.0.1\" -DLIBDIR="\"$(LIBDIR)\""
LIBS = -pthread -lz -ldl -lm
LIBS = -pthread -lz $(DL_LIBS) -lm
SRCS=$(wildcard *.cc elf/*.cc macho/*.cc)
HEADERS=$(wildcard *.h elf/*.h macho/*.h)
@ -134,6 +134,12 @@ ifeq ($(IS_ANDROID), 1)
CXXFLAGS += -Wno-c++11-narrowing
endif
ifeq ($(OS), NetBSD)
DL_LIBS =
else
DL_LIBS = -ldl
endif
all: mold mold-wrapper.so
mold: $(OBJS) $(MIMALLOC_LIB) $(TBB_LIB) $(XXHASH_LIB)
@ -142,7 +148,7 @@ mold: $(OBJS) $(MIMALLOC_LIB) $(TBB_LIB) $(XXHASH_LIB)
ln -sf mold ld64.mold
mold-wrapper.so: elf/mold-wrapper.c Makefile
$(CC) $(CFLAGS) -fPIC -shared -o $@ $(LDFLAGS) $< -ldl
$(CC) $(CFLAGS) -fPIC -shared -o $@ $(LDFLAGS) $< $(DL_LIBS)
out/%.o: %.cc $(HEADERS) Makefile out/elf/.keep out/macho/.keep
$(CXX) $(CXXFLAGS) -c -o $@ $<