Thread (2 messages) 2 messages, 1 author, 2025-05-06
DORMANTno replies

[PATCH/RFC v1 1/1] intialize false_but_the_compiler_does_not_know_it_

From: <hidden>
Date: 2025-05-06 12:12:02
Subsystem: the rest · Maintainer: Linus Torvalds

From: Torsten Bögershausen <redacted>

Compiling/linking 82e79c63642c on an older MacOs machine leads to this:
Undefined symbols for architecture x86_64:
  "_false_but_the_compiler_does_not_know_it_", referenced from:
      _start_command in libgit.a(run-command.o)

The linker doesn't seem to pick up the symbol:
"false_but_the_compiler_does_not_know_it_"

Initializing the variable to 0 fixes the problem:
The symbol type changes from 'C' to 'S' and is picked up by the linker.

Helped-by: Koji Nakamaru [off-list ref]
Signed-off-by: Torsten Bögershausen <redacted>
---
 compiler-tricks/not-constant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Koji Nakamaru: Thanks for the digging.
This patch fixes the problem here -  as a side note,
the change in Makefile alone doesn't help.

diff --git a/compiler-tricks/not-constant.c b/compiler-tricks/not-constant.c
index 1da3ffc2f5..9fb4f275b1 100644
--- a/compiler-tricks/not-constant.c
+++ b/compiler-tricks/not-constant.c
@@ -1,2 +1,2 @@
 #include <git-compat-util.h>
-int false_but_the_compiler_does_not_know_it_;
+int false_but_the_compiler_does_not_know_it_ = 0;
-- 
2.39.5
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help