X-Git-Url: https://git.saurik.com/apple/ld64.git/blobdiff_plain/d696c285d331ab577dcabd00419d8c30336673da..HEAD:/unit-tests/test-cases/blank-stubs/Makefile diff --git a/unit-tests/test-cases/blank-stubs/Makefile b/unit-tests/test-cases/blank-stubs/Makefile index 514fd8b..9db9b97 100644 --- a/unit-tests/test-cases/blank-stubs/Makefile +++ b/unit-tests/test-cases/blank-stubs/Makefile @@ -23,8 +23,25 @@ TESTROOT = ../.. include ${TESTROOT}/include/common.makefile +#ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(subst ppc,,$(VALID_ARCHS)) ) -ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(VALID_ARCHS)) +# build the list of all valid archs for this platform... +ifeq ($(ARCH),i386) + ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(filter-out arm%,$(VALID_ARCHS)) ) + SYSROOT = -isysroot $(OSX_SDK) +endif +ifeq ($(ARCH),x86_64) + ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(filter-out arm%,$(VALID_ARCHS)) ) + SYSROOT = -isysroot $(OSX_SDK) +endif +ifeq ($(ARCH),armv7) + ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(filter arm%,$(VALID_ARCHS)) ) + SYSROOT = -isysroot $(IOS_SDK) +endif +ifeq ($(ARCH),arm64) + ALL_ARCH_OPTIONS = $(patsubst %,-arch %,$(filter arm%,$(VALID_ARCHS)) ) + SYSROOT = -isysroot $(IOS_SDK) +endif # # Test that blank stubs are handled properly @@ -34,14 +51,27 @@ run: all all: # build example fully fat dylib - ${CC} `echo ${ALL_ARCH_OPTIONS}` -dynamiclib foo.c -o libfoo.dylib -install_name libfoo.dylib - lipo libfoo.dylib -remove ${ARCH} -output libfoo.dylib + gcc $(SYSROOT) ${CCFLAGS} `echo ${ALL_ARCH_OPTIONS}` -dynamiclib foo.c -o libfoo.dylib -install_name libfoo.dylib + ${FAIL_IF_BAD_MACHO} libfoo.dylib + +# handle the case of a native ppc compile--this sets the subtype, which must be passed to lipo + if [ x${ARCH} != xppc ]; \ + then \ + SUB_ARCH=${ARCH}; \ + else \ + SUB_ARCH=`lipo -info libfoo.dylib | sed 's/.*://;s/ppc64 //;s/.* \(ppc[^ ]*\).*/\1/'`; \ + echo SUB_ARCH $$SUB_ARCH; \ + if [ x$$SUB_ARCH = xALL ]; \ + then \ + SUB_ARCH=ppc; \ + fi \ + fi; \ + lipo libfoo.dylib -remove $$SUB_ARCH -output libfoo.dylib + lipo -create libfoo.dylib -arch_blank ${ARCH} -output libfoo.dylib ${CC} ${CCFLAGS} main.c libfoo.dylib -o main ${OTOOL} -L main | grep libfoo | ${FAIL_IF_STDIN} ${PASS_IFF_GOOD_MACHO} main - clean: rm -rf libfoo.dylib main - \ No newline at end of file