Commit 01e30002c5

Isaac Freund <ifreund@ifreund.xyz>
2021-05-10 23:12:17
stage2: error if requested glibc version too high
Falling back to the max provided glibc version is insufficient as linking to shared objects compiled against the requested version will fail.
1 parent 5ac9179
Changed files (1)
src/glibc.zig
@@ -764,16 +764,17 @@ pub fn buildSharedObjects(comp: *Compilation) !void {
                 .lt => continue,
                 .gt => {
                     // TODO Expose via compile error mechanism instead of log.
-                    std.log.warn("invalid target glibc version: {}", .{target_version});
+                    std.log.err("invalid target glibc version: {}", .{target_version});
                     return error.InvalidTargetGLibCVersion;
                 },
             }
-        } else blk: {
+        } else {
             const latest_index = metadata.all_versions.len - 1;
-            std.log.warn("zig cannot build new glibc version {}; providing instead {}", .{
+            // TODO Expose via compile error mechanism instead of log.
+            std.log.err("zig does not yet provide glibc version {}, the max provided version is {}", .{
                 target_version, metadata.all_versions[latest_index],
             });
-            break :blk latest_index;
+            return error.InvalidTargetGLibCVersion;
         };
         {
             var map_contents = std.ArrayList(u8).init(arena);