Przeglądaj źródła

* since glibc 2.43, __libc_csu* symbols are not available anymore. We cannot remove those as it would break
break backward compatiblity so I marked them as weakexternals

Florian Klämpfl 4 lat temu
rodzic
commit
dafb499fdc

+ 2 - 2
rtl/linux/i386/si_c21.inc

@@ -35,8 +35,8 @@
 
 {$asmmode att}
 
-procedure __libc_csu_init; cdecl; external;
-procedure __libc_csu_fini; cdecl; external;
+procedure __libc_csu_init; cdecl; weakexternal;
+procedure __libc_csu_fini; cdecl; weakexternal;
 procedure libc_start_main; external name '__libc_start_main';
 procedure libc_exit(code: longint); cdecl; external name 'exit';
 

+ 2 - 2
rtl/linux/powerpc64/si_c.inc

@@ -657,8 +657,8 @@ _restvr_31: addi r12,r0,-16
                           Process start/halt
  ******************************************************************************}
 
-procedure __libc_csu_init; cdecl; external;
-procedure __libc_csu_fini; cdecl; external;
+procedure __libc_csu_init; cdecl; weakexternal;
+procedure __libc_csu_fini; cdecl; weakexternal;
 
 procedure __libc_start_main(r3,r4,r5,r6,r7,r8,r9: pointer); cdecl; external;
 

+ 2 - 2
rtl/linux/powerpc64/si_g.inc

@@ -657,8 +657,8 @@ _restvr_31: addi r12,r0,-16
                           Process start/halt
  ******************************************************************************}
 
-procedure __libc_csu_init; cdecl; external;
-procedure __libc_csu_fini; cdecl; external;
+procedure __libc_csu_init; cdecl; weakexternal;
+procedure __libc_csu_fini; cdecl; weakexternal;
 
 procedure __libc_start_main(r3,r4,r5,r6,r7,r8,r9: pointer); cdecl; external;
 

+ 2 - 2
rtl/linux/riscv64/si_g.inc

@@ -23,8 +23,8 @@ var
 
 { as we do not call these procedures directly, calling conventions do not matter and
   even if we did, we use c calling conventions anyways }
-procedure __libc_csu_init; external name '__libc_csu_init';
-procedure __libc_csu_fini; external name '__libc_csu_fini';
+procedure __libc_csu_init; weakexternal name '__libc_csu_init';
+procedure __libc_csu_fini; weakexternal name '__libc_csu_fini';
 
 procedure libc_start_main(main: TProcedure; argc: ptruint; argv: ppchar; init, fini, rtld_fini: TProcedure; stack_end: pointer); cdecl; external name '__libc_start_main';
 procedure libc_exit(code: ptruint); cdecl; external name 'exit';