From 26ce9130ab566542a5f011c907473197e5db9efe Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Sun, 14 Jun 2026 10:29:34 +0300 Subject: [PATCH] fix remaining master ci failures --- .github/workflows/vsl_and_vtl_compile_ci.yml | 1 + vlib/v/builder/cc.v | 9 ++++++++- vlib/v/builder/cc_test.v | 10 ++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/vsl_and_vtl_compile_ci.yml b/.github/workflows/vsl_and_vtl_compile_ci.yml index 428e15c72..8224abde6 100644 --- a/.github/workflows/vsl_and_vtl_compile_ci.yml +++ b/.github/workflows/vsl_and_vtl_compile_ci.yml @@ -84,6 +84,7 @@ jobs: timeout-minutes: 25 env: VFLAGS: -no-parallel + VJOBS: 1 # Fixes complaints about $TERM not being set when running the vtl test script # (a warning on Linux, but an error on macOS). TERM: xterm diff --git a/vlib/v/builder/cc.v b/vlib/v/builder/cc.v index 87ec9d3d8..a7d4a2214 100644 --- a/vlib/v/builder/cc.v +++ b/vlib/v/builder/cc.v @@ -340,6 +340,9 @@ fn normalized_linker_library_file_name(lib_name string) string { fn normalized_missing_library_name(raw_name string, allow_plain_name bool) string { mut lib_name := raw_name.trim_space().trim('`\'"') + if lib_name.len > 1 && lib_name[1] == `:` { + return '' + } for delimiter in ['`', "'", '"', ' ', ':'] { lib_name = lib_name.all_before(delimiter) } @@ -352,6 +355,10 @@ fn normalized_missing_library_name(raw_name string, allow_plain_name bool) strin return normalized } if allow_plain_name { + if lib_name.contains('/') || lib_name.contains('\\') || lib_name.contains('.') + || lib_name.starts_with('-') { + return '' + } return lib_name } return '' @@ -374,7 +381,7 @@ fn c_error_missing_library_name(c_output string) string { } } if start := lower_line.index('cannot find ') { - lib_name := normalized_missing_library_name(line[start + 'cannot find '.len..], false) + lib_name := normalized_missing_library_name(line[start + 'cannot find '.len..], true) if lib_name != '' { return lib_name } diff --git a/vlib/v/builder/cc_test.v b/vlib/v/builder/cc_test.v index ef3760cf1..14b1d169f 100644 --- a/vlib/v/builder/cc_test.v +++ b/vlib/v/builder/cc_test.v @@ -765,6 +765,16 @@ fn test_c_error_missing_library_name_with_mingw_lflag_suffix_output() { assert c_error_missing_library_name(c_output) == 'v_missing_lib_25499' } +fn test_c_error_missing_library_name_with_mingw_plain_library_output() { + c_output := 'C:/msys64/ucrt64/bin/ld.exe: cannot find v_missing_lib_25499: No such file or directory\ncollect2.exe: error: ld returned 1 exit status\n' + assert c_error_missing_library_name(c_output) == 'v_missing_lib_25499' +} + +fn test_c_error_missing_library_name_ignores_missing_object_file() { + c_output := '/usr/bin/ld: cannot find crt1.o: No such file or directory\ncollect2: error: ld returned 1 exit status\n' + assert c_error_missing_library_name(c_output) == '' +} + fn test_c_error_missing_library_name_with_regular_c_error() { c_output := "error: unknown type name 'my_missing_type'" assert c_error_missing_library_name(c_output) == '' -- 2.39.5