@@ -1055,7 +1055,8 @@ elif run_os in ['windows-msvc']:
10551055 config .target_add_rpath = r''
10561056
10571057 config .target_clang = \
1058- ('clang++ -target %s %s -fobjc-runtime=ios-5.0' % (config .variant_triple , clang_mcp_opt ))
1058+ ('clang++ -target %s %s %s -fobjc-runtime=ios-5.0' % \
1059+ (config .variant_triple , clang_mcp_opt , config .target_cc_options ))
10591060 config .target_ld = \
10601061 ('%r -libpath:%s' % (config .link , os .path .join (test_resource_dir , \
10611062 config .target_sdk_name )))
@@ -1107,14 +1108,14 @@ elif (run_os in ['linux-gnu', 'linux-gnueabihf', 'freebsd', 'openbsd', 'windows-
11071108 config .target_shared_library_prefix = 'lib'
11081109 config .target_shared_library_suffix = ".so"
11091110 config .target_sdk_name = "freebsd"
1110- config .target_cc_options = "-fPIC "
1111+ config .target_cc_options = "-fPIE "
11111112 elif run_os == 'openbsd' :
11121113 lit_config .note ("Testing OpenBSD " + config .variant_triple )
11131114 config .target_object_format = "elf"
11141115 config .target_shared_library_prefix = 'lib'
11151116 config .target_shared_library_suffix = ".so"
11161117 config .target_sdk_name = "openbsd"
1117- config .target_cc_options = "-fPIC "
1118+ config .target_cc_options = "-fPIE "
11181119 elif kIsAndroid :
11191120 lit_config .note ("Testing Android " + config .variant_triple )
11201121 config .target_object_format = "elf"
@@ -1124,14 +1125,14 @@ elif (run_os in ['linux-gnu', 'linux-gnueabihf', 'freebsd', 'openbsd', 'windows-
11241125 # Needed by several ParseableInterface/swift_build_sdk_interfaces tests on
11251126 # Android
11261127 config .environment ['ANDROID_DATA' ] = os .environ ['ANDROID_DATA' ]
1127- config .target_cc_options = "-fPIC "
1128+ config .target_cc_options = "-fPIE "
11281129 else :
11291130 lit_config .note ("Testing Linux " + config .variant_triple )
11301131 config .target_object_format = "elf"
11311132 config .target_shared_library_prefix = 'lib'
11321133 config .target_shared_library_suffix = ".so"
11331134 config .target_sdk_name = "linux"
1134- config .target_cc_options = "-fPIC "
1135+ config .target_cc_options = "-fPIE "
11351136 config .target_runtime = "native"
11361137 config .target_swift_autolink_extract = inferSwiftBinary ("swift-autolink-extract" )
11371138
@@ -1189,8 +1190,8 @@ elif (run_os in ['linux-gnu', 'linux-gnueabihf', 'freebsd', 'openbsd', 'windows-
11891190 '%s -emit-pcm -target %s' %
11901191 (config .swiftc , config .variant_triple ))
11911192 config .target_clang = (
1192- "clang++ -target %s %s -fobjc-runtime=ios-5.0" %
1193- (config .variant_triple , clang_mcp_opt ))
1193+ "clang++ -target %s %s %s -fobjc-runtime=ios-5.0" %
1194+ (config .variant_triple , clang_mcp_opt , config . target_cc_options ))
11941195 config .target_ld = "ld -L%r" % (make_path (test_resource_dir , config .target_sdk_name ))
11951196elif run_os == 'linux-androideabi' or run_os == 'linux-android' :
11961197 # The module triple for Android ARMv7 seems to be canonicalized in LLVM
@@ -1319,7 +1320,7 @@ elif run_os == 'linux-androideabi' or run_os == 'linux-android':
13191320 'clang++' ,
13201321 '-target' , config .variant_triple ,
13211322 clang_mcp_opt , android_include_system_paths_opt ,
1322- '-fobjc-runtime=ios-5.0' ])
1323+ config . target_cc_options , '-fobjc-runtime=ios-5.0' ])
13231324 config .target_ld = ' ' .join ([
13241325 tools_directory ,
13251326 '-L%s' % make_path (test_resource_dir , config .target_sdk_name )])
0 commit comments