diff --git a/driver/linker-gcc.cpp b/driver/linker-gcc.cpp
index 3f0033e2ec..a41afb9bc5 100644
--- a/driver/linker-gcc.cpp
+++ b/driver/linker-gcc.cpp
@@ -475,7 +475,7 @@ void ArgsBuilder::addCppStdlibLinkFlags(const llvm::Triple &triple) {
 void ArgsBuilder::addObjcStdlibLinkFlags(const llvm::Triple &triple) {
   if (linkNoObjc)
     return;
-    
+
   args.push_back("-lobjc");
 }
 
@@ -613,7 +613,8 @@ void ArgsBuilder::build(llvm::StringRef outputPath,
   }
 
   // -rpath if linking against shared default libs or ldc-jit
-  if (linkAgainstSharedDefaultLibs() || opts::enableDynamicCompile) {
+  if ((linkAgainstSharedDefaultLibs() || opts::enableDynamicCompile)
+      && !triple.isOSBinFormatWasm()) { // wasm-ld doesn't recognize -rpath
     llvm::StringRef rpath = ConfigFile::instance.rpath();
     if (!rpath.empty())
       addLdFlag("-rpath", rpath);
@@ -745,7 +746,7 @@ void ArgsBuilder::addDefaultPlatformLibs() {
   }
 
   if (triple.isOSDarwin()) {
-    
+
     // libobjc is more or less required, so we link against it here.
     // This could be prettier, though.
     addObjcStdlibLinkFlags(triple);