# do not fail. Static builds leave urandom_read relying on system-wide shared libraries.
 $(OUTPUT)/liburandom_read.so: urandom_read_lib1.c urandom_read_lib2.c liburandom_read.map
        $(call msg,LIB,,$@)
-       $(Q)$(CLANG) $(filter-out -static,$(CFLAGS) $(LDFLAGS))   \
+       $(Q)$(CLANG) $(CLANG_TARGET_ARCH) \
+                    $(filter-out -static,$(CFLAGS) $(LDFLAGS)) \
                     $(filter %.c,$^) $(filter-out -static,$(LDLIBS)) \
                     -fuse-ld=$(LLD) -Wl,-znoseparate-code -Wl,--build-id=sha1 \
                     -Wl,--version-script=liburandom_read.map \
 
 $(OUTPUT)/urandom_read: urandom_read.c urandom_read_aux.c $(OUTPUT)/liburandom_read.so
        $(call msg,BINARY,,$@)
-       $(Q)$(CLANG) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $(filter %.c,$^) \
-                    -lurandom_read $(filter-out -static,$(LDLIBS)) -L$(OUTPUT)  \
+       $(Q)$(CLANG) $(CLANG_TARGET_ARCH) \
+                    $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $(filter %.c,$^) \
+                    -lurandom_read $(filter-out -static,$(LDLIBS)) -L$(OUTPUT) \
                     -fuse-ld=$(LLD) -Wl,-znoseparate-code -Wl,--build-id=sha1 \
                     -Wl,-rpath=. -o $@