| ... | ... | @@ -239,13 +239,20 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { |
| 239 | 239 | }; |
| 240 | 240 | try llvm_triple.appendSlice(llvm_os); |
| 241 | 241 | |
| 242 | | if (target.os.tag.isDarwin()) { |
| 243 | | const min_version = target.os.version_range.semver.min; |
| 244 | | try llvm_triple.writer().print("{d}.{d}.{d}", .{ |
| 245 | | min_version.major, |
| 246 | | min_version.minor, |
| 247 | | min_version.patch, |
| 248 | | }); |
| 242 | switch (target.os.versionRange()) { |
| 243 | .none, |
| 244 | .windows, |
| 245 | => {}, |
| 246 | .semver => |ver| try llvm_triple.writer().print("{d}.{d}.{d}", .{ |
| 247 | ver.min.major, |
| 248 | ver.min.minor, |
| 249 | ver.min.patch, |
| 250 | }), |
| 251 | .linux => |ver| try llvm_triple.writer().print("{d}.{d}.{d}", .{ |
| 252 | ver.range.min.major, |
| 253 | ver.range.min.minor, |
| 254 | ver.range.min.patch, |
| 255 | }), |
| 249 | 256 | } |
| 250 | 257 | try llvm_triple.append('-'); |
| 251 | 258 | |
| ... | ... | @@ -279,6 +286,19 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { |
| 279 | 286 | }; |
| 280 | 287 | try llvm_triple.appendSlice(llvm_abi); |
| 281 | 288 | |
| 289 | // This should eventually handle the Android API level too. |
| 290 | switch (target.os.versionRange()) { |
| 291 | .none, |
| 292 | .semver, |
| 293 | .windows, |
| 294 | => {}, |
| 295 | .linux => |ver| if (target.abi.isGnu()) try llvm_triple.writer().print("{d}.{d}.{d}", .{ |
| 296 | ver.glibc.major, |
| 297 | ver.glibc.minor, |
| 298 | ver.glibc.patch, |
| 299 | }), |
| 300 | } |
| 301 | |
| 282 | 302 | return llvm_triple.toOwnedSlice(); |
| 283 | 303 | } |
| 284 | 304 | |