diff --git a/examples/PrintFunctionNames/Makefile b/examples/PrintFunctionNames/Makefile
index 125ac4854ffc799f950afd80261482215c39f0fc..23a53054019d126efc3a4ed71fbe59a6f5d1b5f6 100644
--- a/examples/PrintFunctionNames/Makefile
+++ b/examples/PrintFunctionNames/Makefile
@@ -18,7 +18,11 @@ EXPORTED_SYMBOL_FILE = $(PROJ_SRC_DIR)/PrintFunctionNames.exports
 endif
 endif
 
-LINK_LIBS_IN_SHARED = 1
+LINK_LIBS_IN_SHARED = 0
 SHARED_LIBRARY = 1
 
 include $(CLANG_LEVEL)/Makefile
+
+ifeq ($(OS),Darwin)
+  LDFLAGS=-Wl,-undefined,dynamic_lookup
+endif
diff --git a/examples/PrintFunctionNames/README.txt b/examples/PrintFunctionNames/README.txt
index f0f5ba6136d39da345c8b15d95a059d16f8b419c..4c284cd170d5cb2d6cecd98948aa68bd73c9d880 100644
--- a/examples/PrintFunctionNames/README.txt
+++ b/examples/PrintFunctionNames/README.txt
@@ -1,10 +1,12 @@
 This is a simple example demonstrating how to use clang's facility for
 providing AST consumers using a plugin.
 
-You will probably need to build clang so that it exports all symbols (disable
-TOOL_NO_EXPORT in the tools/clang Makefile).
+Build the plugin by running `make` in this directory.
 
 Once the plugin is built, you can run it using:
 --
-$ clang -cc1 -load path/to/libPrintFunctionNames.so -plugin print-fns some-input-file.c
---
+Linux:
+$ clang -cc1 -load ../../Debug+Asserts/lib/libPrintFunctionNames.so -plugin print-fns some-input-file.c
+
+Mac:
+$ clang -cc1 -load ../../Debug+Asserts/lib/libPrintFunctionNames.dylib -plugin print-fns some-input-file.c