Author: joerg Date: Thu Jul 12 14:21:29 2018 New Revision: 336947 URL: http://llvm.org/viewvc/llvm-project?rev=336947&view=rev Log: Support linking static PIE binaries on NetBSD
Modified: cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp cfe/trunk/test/Driver/netbsd.c Modified: cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp?rev=336947&r1=336946&r2=336947&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp Thu Jul 12 14:21:29 2018 @@ -122,6 +122,10 @@ void netbsd::Linker::ConstructJob(Compil CmdArgs.push_back("--eh-frame-hdr"); if (Args.hasArg(options::OPT_static)) { CmdArgs.push_back("-Bstatic"); + if (Args.hasArg(options::OPT_pie)) { + Args.AddAllArgs(CmdArgs, options::OPT_pie); + CmdArgs.push_back("--no-dynamic-linker"); + } } else { if (Args.hasArg(options::OPT_rdynamic)) CmdArgs.push_back("-export-dynamic"); Modified: cfe/trunk/test/Driver/netbsd.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/netbsd.c?rev=336947&r1=336946&r2=336947&view=diff ============================================================================== --- cfe/trunk/test/Driver/netbsd.c (original) +++ cfe/trunk/test/Driver/netbsd.c Thu Jul 12 14:21:29 2018 @@ -5,6 +5,9 @@ // RUN: -pie --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ // RUN: | FileCheck -check-prefix=PIE %s // RUN: %clang -no-canonical-prefixes -target x86_64--netbsd \ +// RUN: -static -pie --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=STATIC-PIE %s +// RUN: %clang -no-canonical-prefixes -target x86_64--netbsd \ // RUN: -shared --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ // RUN: | FileCheck -check-prefix=SHARED %s @@ -139,6 +142,16 @@ // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crti.o" "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o" +// STATIC-PIE: ld{{.*}}" "--eh-frame-hdr" +// STATIC-PIE-NOT: "-dynamic-linker" "/libexec/ld.elf_so" +// STATIC-PIE-NOT: "-Bshareable" +// STATIC-PIE: "-pie" +// STATIC-PIE-NOT: "-dynamic-linker" "/libexec/ld.elf_so" +// STATIC-PIE-NOT: "-Bshareable" +// STATIC-PIE: "{{.*}}/usr/lib{{/|\\\\}}crt0.o" +// STATIC-PIE: "{{.*}}/usr/lib{{/|\\\\}}crti.o" "{{.*}}/usr/lib{{/|\\\\}}crtbeginS.o" +// STATIC-PIE: "{{.*}}/usr/lib{{/|\\\\}}crtendS.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o" + // SHARED: ld{{.*}}" "--eh-frame-hdr" // SHARED-NOT: "-pie" // SHARED-NOT: "-dynamic-linker" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits