Statics, FreeBSD

Don Allen donaldcallen at gmail.com
Sat Apr 6 12:35:13 UTC 2024


I've had some issues (seg faults) with statics on FreeBSD 14 
recently in code that works on Linux and wrote this little test 
program to try to isolate them:

````
import std.stdio;

int main(string[] args)
{
     static int foo;
     foo = 1;
     writefln("%d", foo);
     return 0;
}
````

Compiling with dmd produces some interesting complaints from the 
linker, whereas compiling with ldc (1.35) does not:

````
(dmd-2.107.1)dca at giovanni:/tmp$ dmd testit.d
ld: error: testit.o:(function D main: .text._Dmain+0xe): 
R_X86_64_GOTTPOFF must be used in MOVQ or ADDQ instructions only
ld: error: testit.o:(function D main: .text._Dmain+0x26): 
R_X86_64_GOTTPOFF must be used in MOVQ or ADDQ instructions only
cc: error: linker command failed with exit code 1 (use -v to see 
invocation)
Error: linker exited with status 1
(dmd-2.107.1)dca at giovanni:/tmp$ ls -l testit
ls: testit: No such file or directory
(dmd-2.107.1)dca at giovanni:/tmp$ ldc2 testit.d
(dmd-2.107.1)dca at giovanni:/tmp$ testit
1
(dmd-2.107.1)dca at giovanni:/tmp$

````

I will file a bug report, but thought I'd post this here as well, 
to see if any of you had some useful observations about this.



More information about the Digitalmars-d mailing list