| ... | @@ -239,13 +239,20 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { | ... | @@ -239,13 +239,20 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { |
| 239 | }; | 239 | }; |
| 240 | try llvm_triple.appendSlice(llvm_os); | 240 | try llvm_triple.appendSlice(llvm_os); |
| 241 | | 241 | |
| 242 | if (target.os.tag.isDarwin()) { | 242 | switch (target.os.versionRange()) { |
| 243 | const min_version = target.os.version_range.semver.min; | 243 | .none, |
| 244 | try llvm_triple.writer().print("{d}.{d}.{d}", .{ | 244 | .windows, |
| 245 | min_version.major, | 245 | => {}, |
| 246 | min_version.minor, | 246 | .semver => |ver| try llvm_triple.writer().print("{d}.{d}.{d}", .{ |
| 247 | min_version.patch, | 247 | ver.min.major, |
| 248 | }); | 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 | try llvm_triple.append('-'); | 257 | try llvm_triple.append('-'); |
| 251 | | 258 | |
| ... | @@ -279,6 +286,19 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { | ... | @@ -279,6 +286,19 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![]const u8 { |
| 279 | }; | 286 | }; |
| 280 | try llvm_triple.appendSlice(llvm_abi); | 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 | return llvm_triple.toOwnedSlice(); | 302 | return llvm_triple.toOwnedSlice(); |
| 283 | } | 303 | } |
| 284 | | 304 | |