summaryrefslogtreecommitdiff
path: root/compiler/systems
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/systems')
-rw-r--r--compiler/systems/i_aix.pas8
-rw-r--r--compiler/systems/i_amiga.pas8
-rw-r--r--compiler/systems/i_android.pas8
-rw-r--r--compiler/systems/i_beos.pas4
-rw-r--r--compiler/systems/i_bsd.pas58
-rw-r--r--compiler/systems/i_embed.pas12
-rw-r--r--compiler/systems/i_emx.pas4
-rw-r--r--compiler/systems/i_gba.pas4
-rw-r--r--compiler/systems/i_go32v2.pas4
-rw-r--r--compiler/systems/i_haiku.pas4
-rw-r--r--compiler/systems/i_jvm.pas8
-rw-r--r--compiler/systems/i_linux.pas65
-rw-r--r--compiler/systems/i_macos.pas4
-rw-r--r--compiler/systems/i_morph.pas4
-rw-r--r--compiler/systems/i_msdos.pas4
-rw-r--r--compiler/systems/i_nativent.pas4
-rw-r--r--compiler/systems/i_nds.pas4
-rw-r--r--compiler/systems/i_nwl.pas4
-rw-r--r--compiler/systems/i_nwm.pas4
-rw-r--r--compiler/systems/i_os2.pas4
-rw-r--r--compiler/systems/i_palmos.pas8
-rw-r--r--compiler/systems/i_sunos.pas12
-rw-r--r--compiler/systems/i_symbian.pas8
-rw-r--r--compiler/systems/i_watcom.pas4
-rw-r--r--compiler/systems/i_wdosx.pas4
-rw-r--r--compiler/systems/i_wii.pas4
-rw-r--r--compiler/systems/i_win.pas16
-rw-r--r--compiler/systems/t_aix.pas3
-rw-r--r--compiler/systems/t_amiga.pas4
-rw-r--r--compiler/systems/t_android.pas3
-rw-r--r--compiler/systems/t_beos.pas2
-rw-r--r--compiler/systems/t_bsd.pas27
-rw-r--r--compiler/systems/t_embed.pas6
-rw-r--r--compiler/systems/t_emx.pas2
-rw-r--r--compiler/systems/t_gba.pas2
-rw-r--r--compiler/systems/t_go32v2.pas4
-rw-r--r--compiler/systems/t_haiku.pas2
-rw-r--r--compiler/systems/t_jvm.pas4
-rw-r--r--compiler/systems/t_linux.pas21
-rw-r--r--compiler/systems/t_macos.pas2
-rw-r--r--compiler/systems/t_morph.pas2
-rw-r--r--compiler/systems/t_msdos.pas6
-rw-r--r--compiler/systems/t_nativent.pas2
-rw-r--r--compiler/systems/t_nds.pas2
-rw-r--r--compiler/systems/t_nwl.pas2
-rw-r--r--compiler/systems/t_nwm.pas4
-rw-r--r--compiler/systems/t_os2.pas2
-rw-r--r--compiler/systems/t_sunos.pas4
-rw-r--r--compiler/systems/t_symbian.pas7
-rw-r--r--compiler/systems/t_watcom.pas2
-rw-r--r--compiler/systems/t_wdosx.pas2
-rw-r--r--compiler/systems/t_wii.pas2
-rw-r--r--compiler/systems/t_win.pas10
53 files changed, 189 insertions, 215 deletions
diff --git a/compiler/systems/i_aix.pas b/compiler/systems/i_aix.pas
index 5ca4ee7caa..8b0bf0e3f9 100644
--- a/compiler/systems/i_aix.pas
+++ b/compiler/systems/i_aix.pas
@@ -64,8 +64,8 @@ unit i_aix;
dirsep : '/';
assem : as_powerpc_xcoff;
assemextern : as_powerpc_xcoff;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_aix;
ar : ar_gnu_ar;
res : res_xcoff;
dbg : dbg_stabx;
@@ -127,8 +127,8 @@ unit i_aix;
dirsep : '/';
assem : as_powerpc_xcoff;
assemextern : as_powerpc_xcoff;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_aix;
ar : ar_gnu_ar;
res : res_xcoff;
dbg : dbg_stabx;
diff --git a/compiler/systems/i_amiga.pas b/compiler/systems/i_amiga.pas
index 3a19a03ba4..f8ab7d6296 100644
--- a/compiler/systems/i_amiga.pas
+++ b/compiler/systems/i_amiga.pas
@@ -63,8 +63,8 @@ unit i_amiga;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_amiga;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
@@ -125,8 +125,8 @@ unit i_amiga;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_amiga;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_android.pas b/compiler/systems/i_android.pas
index dcf9f72398..ce13495d19 100644
--- a/compiler/systems/i_android.pas
+++ b/compiler/systems/i_android.pas
@@ -65,8 +65,8 @@ unit i_android;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_android;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -130,8 +130,8 @@ unit i_android;
dirsep : '/';
assem : as_i386_elf32;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_android;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_beos.pas b/compiler/systems/i_beos.pas
index bfdf975f70..6cca8cbb9c 100644
--- a/compiler/systems/i_beos.pas
+++ b/compiler/systems/i_beos.pas
@@ -64,8 +64,8 @@ unit i_beos;
dirsep : '/';
assem : as_i386_elf32;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_beos;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_bsd.pas b/compiler/systems/i_bsd.pas
index 2ae42aee9a..90264afcf0 100644
--- a/compiler/systems/i_bsd.pas
+++ b/compiler/systems/i_bsd.pas
@@ -93,8 +93,8 @@ unit i_bsd;
dirsep : '/';
assem : as_i386_elf32;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -159,8 +159,8 @@ unit i_bsd;
dirsep : '/';
assem : as_x86_64_elf64;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_dwarf2; //dbg_stabs;
@@ -222,8 +222,8 @@ unit i_bsd;
dirsep : '/';
assem : as_i386_elf32;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -284,8 +284,8 @@ unit i_bsd;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -349,8 +349,8 @@ unit i_bsd;
dirsep : '/';
assem : as_x86_64_elf64;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_dwarf2; //dbg_stabs;
@@ -411,8 +411,8 @@ unit i_bsd;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -473,8 +473,8 @@ unit i_bsd;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -539,8 +539,8 @@ unit i_bsd;
dirsep : '/';
assem : as_x86_64_elf64;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_dwarf2; //dbg_stabs;
@@ -601,8 +601,8 @@ unit i_bsd;
dirsep : '/';
assem : as_darwin;
assemextern : as_darwin;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_macho;
dbg : dbg_stabs;
@@ -665,8 +665,8 @@ unit i_bsd;
dirsep : '/';
assem : as_darwin;
assemextern : as_darwin;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_macho;
dbg : dbg_stabs;
@@ -729,8 +729,8 @@ unit i_bsd;
dirsep : '/';
assem : as_darwin;
assemextern : as_darwin;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_macho;
dbg : dbg_dwarf2;
@@ -793,8 +793,8 @@ unit i_bsd;
dirsep : '/';
assem : as_darwin;
assemextern : as_darwin;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_macho;
dbg : dbg_dwarf2;
@@ -857,8 +857,8 @@ unit i_bsd;
dirsep : '/';
assem : as_darwin;
assemextern : as_darwin;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_macho;
dbg : dbg_dwarf2;
@@ -891,7 +891,7 @@ unit i_bsd;
system : system_arm_darwin;
name : 'Darwin for ARM';
shortname : 'Darwin';
- flags : [tf_p_ext_support,tf_requires_proper_alignment,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,tf_dwarf_only_local_labels,tf_has_winlike_resources];
+ flags : [tf_p_ext_support,tf_requires_proper_alignment,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,tf_dwarf_only_local_labels,tf_has_winlike_resources,tf_pic_default];
cpu : cpu_arm;
unit_env : 'BSDUNITS';
extradefines : 'UNIX;BSD;HASUNIX;CPUARMEL';
@@ -920,8 +920,8 @@ unit i_bsd;
dirsep : '/';
assem : as_darwin;
assemextern : as_darwin;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_bsd;
ar : ar_gnu_ar;
res : res_macho;
dbg : dbg_dwarf2;
diff --git a/compiler/systems/i_embed.pas b/compiler/systems/i_embed.pas
index 53946026c0..b39eaa3e80 100644
--- a/compiler/systems/i_embed.pas
+++ b/compiler/systems/i_embed.pas
@@ -63,8 +63,8 @@ unit i_embed;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_embedded;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
@@ -126,8 +126,8 @@ unit i_embed;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_embedded;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_dwarf2;
@@ -189,8 +189,8 @@ unit i_embed;
dirsep : '/';
assem : as_i386_elf32;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_embedded;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_emx.pas b/compiler/systems/i_emx.pas
index 14c36da39d..f3934ec92a 100644
--- a/compiler/systems/i_emx.pas
+++ b/compiler/systems/i_emx.pas
@@ -74,8 +74,8 @@ unit i_emx;
dirsep : '\';
assem : as_i386_as_aout;
assemextern : as_i386_as_aout;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_emx;
ar : ar_gnu_ar;
res : res_watcom_wrc_os2;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_gba.pas b/compiler/systems/i_gba.pas
index 910a03a045..f689d52ead 100644
--- a/compiler/systems/i_gba.pas
+++ b/compiler/systems/i_gba.pas
@@ -64,8 +64,8 @@ unit i_gba;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_gba;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_go32v2.pas b/compiler/systems/i_go32v2.pas
index b5d20b3239..a25e0d6bac 100644
--- a/compiler/systems/i_go32v2.pas
+++ b/compiler/systems/i_go32v2.pas
@@ -63,8 +63,8 @@ unit i_go32v2;
dirsep : '\';
assem : as_i386_coff;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_int_go32v2;
+ linkextern : ld_go32v2;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_haiku.pas b/compiler/systems/i_haiku.pas
index 71b6fef5e5..044a7bf118 100644
--- a/compiler/systems/i_haiku.pas
+++ b/compiler/systems/i_haiku.pas
@@ -65,8 +65,8 @@ unit i_haiku;
dirsep : '/';
assem : as_i386_elf32;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_haiku;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_jvm.pas b/compiler/systems/i_jvm.pas
index 16d6f9d52d..4d902942d9 100644
--- a/compiler/systems/i_jvm.pas
+++ b/compiler/systems/i_jvm.pas
@@ -81,8 +81,8 @@ unit i_jvm;
dirsep : '/';
assem : as_jvm_jasmin;
assemextern : as_jvm_jasmin;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_jvm;
ar : ar_none;
res : res_jvm_raw;
dbg : dbg_jasmin;
@@ -146,8 +146,8 @@ unit i_jvm;
dirsep : '/';
assem : as_jvm_jasmin;
assemextern : as_jvm_jasmin;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_jvm;
ar : ar_none;
res : res_jvm_raw;
dbg : dbg_jasmin;
diff --git a/compiler/systems/i_linux.pas b/compiler/systems/i_linux.pas
index ad474d5568..5316dd9236 100644
--- a/compiler/systems/i_linux.pas
+++ b/compiler/systems/i_linux.pas
@@ -69,8 +69,8 @@ unit i_linux;
dirsep : '/';
assem : as_i386_elf32;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -133,8 +133,8 @@ unit i_linux;
dirsep : '/';
assem : as_i386_elf32;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -197,8 +197,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -261,8 +261,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -324,8 +324,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_dwarf2;
@@ -387,8 +387,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -451,8 +451,8 @@ unit i_linux;
dirsep : '/';
assem : as_x86_64_elf64;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_dwarf2;
@@ -517,8 +517,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -553,7 +553,8 @@ unit i_linux;
shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
tf_requires_proper_alignment,
- tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
+ tf_smartlink_sections,tf_smartlink_library,tf_pic_uses_got,
+ tf_has_winlike_resources];
cpu : cpu_arm;
unit_env : 'LINUXUNITS';
extradefines : 'UNIX;HASUNIX;CPUARMHF';
@@ -582,8 +583,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -618,7 +619,8 @@ unit i_linux;
shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
tf_requires_proper_alignment,
- tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
+ tf_smartlink_sections,tf_smartlink_library,tf_pic_uses_got,
+ tf_has_winlike_resources];
cpu : cpu_arm;
unit_env : 'LINUXUNITS';
extradefines : 'UNIX;HASUNIX;CPUARMEL';
@@ -647,8 +649,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -683,7 +685,8 @@ unit i_linux;
shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
tf_requires_proper_alignment,
- tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
+ tf_smartlink_sections,tf_smartlink_library,tf_pic_uses_got,
+ tf_has_winlike_resources];
cpu : cpu_arm;
unit_env : 'LINUXUNITS';
extradefines : 'UNIX;HASUNIX;CPUARMEB';
@@ -712,8 +715,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -776,8 +779,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -844,8 +847,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
@@ -909,8 +912,8 @@ unit i_linux;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_linux;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_macos.pas b/compiler/systems/i_macos.pas
index 0df2269b89..68f3d8bf20 100644
--- a/compiler/systems/i_macos.pas
+++ b/compiler/systems/i_macos.pas
@@ -62,8 +62,8 @@ unit i_macos;
dirsep : ':';
assem : as_powerpc_mpw;
assemextern : as_powerpc_mpw;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_mpw;
ar : ar_mpw_ar;
res : res_powerpc_mpw;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_morph.pas b/compiler/systems/i_morph.pas
index 42f4fea91c..50226f4f8e 100644
--- a/compiler/systems/i_morph.pas
+++ b/compiler/systems/i_morph.pas
@@ -63,8 +63,8 @@ unit i_morph;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_morphos;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_msdos.pas b/compiler/systems/i_msdos.pas
index 3233452f1c..b063fade87 100644
--- a/compiler/systems/i_msdos.pas
+++ b/compiler/systems/i_msdos.pas
@@ -64,8 +64,8 @@ unit i_msdos;
dirsep : '\';
assem : as_i386_nasmobj;
assemextern : as_i386_nasmobj;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_msdos;
ar : ar_watcom_wlib_omf;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_nativent.pas b/compiler/systems/i_nativent.pas
index cc70a9f409..325257efb9 100644
--- a/compiler/systems/i_nativent.pas
+++ b/compiler/systems/i_nativent.pas
@@ -68,8 +68,8 @@ unit i_nativent;
dirsep : '\';
assem : as_i386_pecoff;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_int_nativent;
+ linkextern : ld_none;
ar : ar_gnu_ar;
res : res_gnu_windres;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_nds.pas b/compiler/systems/i_nds.pas
index 129f42f160..40cc697f90 100644
--- a/compiler/systems/i_nds.pas
+++ b/compiler/systems/i_nds.pas
@@ -64,8 +64,8 @@ unit i_nds;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_nds;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_nwl.pas b/compiler/systems/i_nwl.pas
index 5264094cbe..00eb2dbb88 100644
--- a/compiler/systems/i_nwl.pas
+++ b/compiler/systems/i_nwl.pas
@@ -63,8 +63,8 @@ unit i_nwl;
dirsep : '/';
assem : as_i386_elf32;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_netwlibc;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_nwm.pas b/compiler/systems/i_nwm.pas
index 13506cae41..d58386456c 100644
--- a/compiler/systems/i_nwm.pas
+++ b/compiler/systems/i_nwm.pas
@@ -63,8 +63,8 @@ unit i_nwm;
dirsep : '/';
assem : as_i386_nlmcoff; // as_i386_elf32;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_int_netware;
+ linkextern : ld_netware;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_os2.pas b/compiler/systems/i_os2.pas
index af957609ff..f00658ed30 100644
--- a/compiler/systems/i_os2.pas
+++ b/compiler/systems/i_os2.pas
@@ -74,8 +74,8 @@ unit i_os2;
dirsep : '\';
assem : as_i386_as_aout;
assemextern : as_i386_as_aout;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_os2;
ar : ar_gnu_ar;
res : res_watcom_wrc_os2;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_palmos.pas b/compiler/systems/i_palmos.pas
index ddac2e4581..8db2c627b9 100644
--- a/compiler/systems/i_palmos.pas
+++ b/compiler/systems/i_palmos.pas
@@ -63,8 +63,8 @@ unit i_palmos;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_palmos;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
@@ -136,8 +136,8 @@ unit i_palmos;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_palmos;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_sunos.pas b/compiler/systems/i_sunos.pas
index 558dfe3344..0ac86bf457 100644
--- a/compiler/systems/i_sunos.pas
+++ b/compiler/systems/i_sunos.pas
@@ -65,8 +65,8 @@ unit i_sunos;
dirsep : '/';
assem : as_i386_elf32;
assemextern : as_ggas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_solaris;
ar : ar_gnu_gar;
res : res_elf;
dbg : dbg_stabs;
@@ -132,8 +132,8 @@ unit i_sunos;
dirsep : '/';
assem : as_ggas{as_x86_64_elf64};
assemextern : as_ggas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_solaris;
ar : ar_gnu_ar;
res : res_elf;
dbg : dbg_dwarf2;
@@ -199,8 +199,8 @@ unit i_sunos;
dirsep : '/';
assem : as_ggas;
assemextern : as_ggas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_solaris;
ar : ar_gnu_gar;
res : res_elf;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_symbian.pas b/compiler/systems/i_symbian.pas
index bccb22ca04..ef89e495dd 100644
--- a/compiler/systems/i_symbian.pas
+++ b/compiler/systems/i_symbian.pas
@@ -65,8 +65,8 @@ unit i_symbian;
dirsep : '\';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_windows;
ar : ar_gnu_ar;
res : res_gnu_windres;
dbg : dbg_stabs;
@@ -128,8 +128,8 @@ unit i_symbian;
dirsep : '\';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_windows;
+ linkextern : ld_none;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_watcom.pas b/compiler/systems/i_watcom.pas
index 9cf1aef621..fa159839cd 100644
--- a/compiler/systems/i_watcom.pas
+++ b/compiler/systems/i_watcom.pas
@@ -63,8 +63,8 @@ unit i_watcom;
dirsep : '\';
assem : as_i386_wasm;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_watcom;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_wdosx.pas b/compiler/systems/i_wdosx.pas
index 509c913c0e..b412fbe9be 100644
--- a/compiler/systems/i_wdosx.pas
+++ b/compiler/systems/i_wdosx.pas
@@ -63,8 +63,8 @@ unit i_wdosx;
dirsep : '\';
assem : as_i386_pecoffwdosx;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_wdosx;
ar : ar_gnu_ar;
res : res_gnu_windres;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_wii.pas b/compiler/systems/i_wii.pas
index 6c07442892..0fc8c67036 100644
--- a/compiler/systems/i_wii.pas
+++ b/compiler/systems/i_wii.pas
@@ -63,8 +63,8 @@ unit i_wii;
dirsep : '/';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_none;
+ linkextern : ld_wii;
ar : ar_gnu_ar;
res : res_none;
dbg : dbg_stabs;
diff --git a/compiler/systems/i_win.pas b/compiler/systems/i_win.pas
index e7b32c8762..b20350435c 100644
--- a/compiler/systems/i_win.pas
+++ b/compiler/systems/i_win.pas
@@ -68,8 +68,8 @@ unit i_win;
dirsep : '\';
assem : as_i386_pecoff;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_int_windows;
+ linkextern : ld_windows;
ar : ar_gnu_ar;
res : res_gnu_windres;
dbg : dbg_stabs;
@@ -135,8 +135,8 @@ unit i_win;
dirsep : '\';
assem : as_x86_64_pecoff;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_int_windows;
+ linkextern : ld_windows;
ar : ar_gnu_ar;
res : res_win64_gorc;
dbg : dbg_dwarf2;
@@ -200,8 +200,8 @@ unit i_win;
dirsep : '\';
assem : as_gas;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_int_windows;
+ linkextern : ld_windows;
ar : ar_gnu_ar_scripted;
res : res_gnu_windres;
dbg : dbg_stabs;
@@ -265,8 +265,8 @@ unit i_win;
dirsep : '\';
assem : as_i386_pecoffwince;
assemextern : as_gas;
- link : nil;
- linkextern : nil;
+ link : ld_int_windows;
+ linkextern : ld_windows;
ar : ar_gnu_ar_scripted;
res : res_gnu_windres;
dbg : dbg_stabs;
diff --git a/compiler/systems/t_aix.pas b/compiler/systems/t_aix.pas
index 85cd009b6c..beb6eec417 100644
--- a/compiler/systems/t_aix.pas
+++ b/compiler/systems/t_aix.pas
@@ -414,14 +414,13 @@ end;
*****************************************************************************}
initialization
+ RegisterLinker(ld_aix,TLinkerAIX);
{$ifdef powerpc}
- RegisterExternalLinker(system_powerpc_aix_info,TLinkerAIX);
RegisterImport(system_powerpc_aix,timportlibaix);
RegisterExport(system_powerpc_aix,texportlibaix);
RegisterTarget(system_powerpc_aix_info);
{$endif powerpc}
{$ifdef powerpc64}
- RegisterExternalLinker(system_powerpc64_aix_info,TLinkerAIX);
RegisterImport(system_powerpc64_aix,timportlibaix);
RegisterExport(system_powerpc64_aix,texportlibaix);
RegisterTarget(system_powerpc64_aix_info);
diff --git a/compiler/systems/t_amiga.pas b/compiler/systems/t_amiga.pas
index 30e7efbd21..f7f0c53ea4 100644
--- a/compiler/systems/t_amiga.pas
+++ b/compiler/systems/t_amiga.pas
@@ -277,11 +277,11 @@ end;
initialization
{$ifdef m68k}
{ TODO: No executable creation support for m68k yet!}
- RegisterExternalLinker(system_m68k_Amiga_info,TLinkerAmiga);
+ RegisterLinker(ld_amiga,TLinkerAmiga);
RegisterTarget(system_m68k_Amiga_info);
{$endif m68k}
{$ifdef powerpc}
- RegisterExternalLinker(system_powerpc_Amiga_info,TLinkerAmiga);
+ RegisterLinker(ld_amiga,TLinkerAmiga);
RegisterTarget(system_powerpc_Amiga_info);
{$endif powerpc}
end.
diff --git a/compiler/systems/t_android.pas b/compiler/systems/t_android.pas
index c508448e27..ae8b193270 100644
--- a/compiler/systems/t_android.pas
+++ b/compiler/systems/t_android.pas
@@ -424,14 +424,13 @@ end;
*****************************************************************************}
initialization
+ RegisterLinker(ld_android,TLinkerAndroid);
{$ifdef ARM}
- RegisterExternalLinker(system_arm_android_info,TLinkerAndroid);
RegisterImport(system_arm_android,timportlibandroid);
RegisterExport(system_arm_android,texportlibandroid);
RegisterTarget(system_arm_android_info);
{$endif ARM}
{$ifdef I386}
- RegisterExternalLinker(system_i386_android_info,TLinkerAndroid);
RegisterImport(system_i386_android,timportlibandroid);
RegisterExport(system_i386_android,texportlibandroid);
RegisterTarget(system_i386_android_info);
diff --git a/compiler/systems/t_beos.pas b/compiler/systems/t_beos.pas
index a992ff773a..e55453cdfd 100644
--- a/compiler/systems/t_beos.pas
+++ b/compiler/systems/t_beos.pas
@@ -491,8 +491,8 @@ end;
*****************************************************************************}
initialization
+ RegisterLinker(ld_beos,TLinkerbeos);
{$ifdef i386}
- RegisterExternalLinker(system_i386_beos_info,TLinkerbeos);
RegisterImport(system_i386_beos,timportlibbeos);
RegisterExport(system_i386_beos,texportlibbeos);
RegisterTarget(system_i386_beos_info);
diff --git a/compiler/systems/t_bsd.pas b/compiler/systems/t_bsd.pas
index b581bdc781..91017c1d43 100644
--- a/compiler/systems/t_bsd.pas
+++ b/compiler/systems/t_bsd.pas
@@ -295,9 +295,13 @@ var
startupfile: TCmdStr;
begin
startupfile:=GetDarwinCrt1ObjName(isdll);
- if (startupfile<>'') and
- not librarysearchpath.FindFile(startupfile,false,result) then
- result:='/usr/lib/'+startupfile;
+ if startupfile<>'' then
+ begin
+ if not librarysearchpath.FindFile(startupfile,false,result) then
+ result:='/usr/lib/'+startupfile
+ end
+ else
+ result:='';
result:=maybequoted(result);
end;
@@ -879,29 +883,23 @@ end;
*****************************************************************************}
initialization
+ RegisterLinker(ld_bsd,TLinkerBSD);
{$ifdef x86_64}
- RegisterExternalLinker(system_x86_64_FreeBSD_info,TLinkerBSD);
RegisterImport(system_x86_64_freebsd,timportlibbsd);
RegisterExport(system_x86_64_freebsd,texportlibbsd);
RegisterTarget(system_x86_64_freebsd_info);
- RegisterExternalLinker(system_x86_64_OpenBSD_info,TLinkerBSD);
RegisterImport(system_x86_64_openbsd,timportlibbsd);
RegisterExport(system_x86_64_openbsd,texportlibbsd);
RegisterTarget(system_x86_64_openbsd_info);
- RegisterExternalLinker(system_x86_64_NetBSD_info,TLinkerBSD);
RegisterImport(system_x86_64_netbsd,timportlibbsd);
RegisterExport(system_x86_64_netbsd,texportlibbsd);
RegisterTarget(system_x86_64_netbsd_info);
- RegisterExternalLinker(system_x86_64_darwin_info,TLinkerBSD);
RegisterImport(system_x86_64_darwin,timportlibdarwin);
RegisterExport(system_x86_64_darwin,texportlibdarwin);
RegisterTarget(system_x86_64_darwin_info);
{$endif}
{$ifdef i386}
- RegisterExternalLinker(system_i386_FreeBSD_info,TLinkerBSD);
- RegisterExternalLinker(system_i386_NetBSD_info,TLinkerBSD);
- RegisterExternalLinker(system_i386_OpenBSD_info,TLinkerBSD);
RegisterImport(system_i386_freebsd,timportlibbsd);
RegisterExport(system_i386_freebsd,texportlibbsd);
RegisterTarget(system_i386_freebsd_info);
@@ -911,42 +909,33 @@ initialization
RegisterImport(system_i386_openbsd,timportlibbsd);
RegisterExport(system_i386_openbsd,texportlibbsd);
RegisterTarget(system_i386_openbsd_info);
- RegisterExternalLinker(system_i386_darwin_info,TLinkerBSD);
RegisterImport(system_i386_darwin,timportlibdarwin);
RegisterExport(system_i386_darwin,texportlibdarwin);
RegisterTarget(system_i386_darwin_info);
- RegisterExternalLinker(system_i386_iphonesim_info,TLinkerBSD);
RegisterImport(system_i386_iphonesim,timportlibdarwin);
RegisterExport(system_i386_iphonesim,texportlibdarwin);
RegisterTarget(system_i386_iphonesim_info);
{$endif i386}
{$ifdef m68k}
-// RegisterExternalLinker(system_m68k_FreeBSD_info,TLinkerBSD);
- RegisterExternalLinker(system_m68k_NetBSD_info,TLinkerBSD);
RegisterImport(system_m68k_netbsd,timportlibbsd);
RegisterExport(system_m68k_netbsd,texportlibbsd);
RegisterTarget(system_m68k_netbsd_info);
{$endif m68k}
{$ifdef powerpc}
-// RegisterExternalLinker(system_m68k_FreeBSD_info,TLinkerBSD);
- RegisterExternalLinker(system_powerpc_darwin_info,TLinkerBSD);
RegisterImport(system_powerpc_darwin,timportlibdarwin);
RegisterExport(system_powerpc_darwin,texportlibdarwin);
RegisterTarget(system_powerpc_darwin_info);
- RegisterExternalLinker(system_powerpc_netbsd_info,TLinkerBSD);
RegisterImport(system_powerpc_netbsd,timportlibbsd);
RegisterExport(system_powerpc_netbsd,texportlibbsd);
RegisterTarget(system_powerpc_netbsd_info);
{$endif powerpc}
{$ifdef powerpc64}
- RegisterExternalLinker(system_powerpc64_darwin_info,TLinkerBSD);
RegisterImport(system_powerpc64_darwin,timportlibdarwin);
RegisterExport(system_powerpc64_darwin,texportlibdarwin);
RegisterTarget(system_powerpc64_darwin_info);
{$endif powerpc64}
{$ifdef arm}
- RegisterExternalLinker(system_arm_darwin_info,TLinkerBSD);
RegisterImport(system_arm_darwin,timportlibdarwin);
RegisterExport(system_arm_darwin,texportlibdarwin);
RegisterTarget(system_arm_darwin_info);
diff --git a/compiler/systems/t_embed.pas b/compiler/systems/t_embed.pas
index f92279c2d2..01d503f624 100644
--- a/compiler/systems/t_embed.pas
+++ b/compiler/systems/t_embed.pas
@@ -1031,17 +1031,17 @@ function TLinkerEmbedded.postprocessexecutable(const fn : string;isdll:boolean):
initialization
{$ifdef arm}
- RegisterExternalLinker(system_arm_embedded_info,TlinkerEmbedded);
+ RegisterLinker(ld_embedded,TLinkerEmbedded);
RegisterTarget(system_arm_embedded_info);
{$endif arm}
{$ifdef avr}
- RegisterExternalLinker(system_avr_embedded_info,TlinkerEmbedded);
+ RegisterLinker(ld_embedded,TLinkerEmbedded);
RegisterTarget(system_avr_embedded_info);
{$endif avr}
{$ifdef i386}
- RegisterExternalLinker(system_i386_embedded_info,TlinkerEmbedded);
+ RegisterLinker(ld_embedded,TLinkerEmbedded);
RegisterTarget(system_i386_embedded_info);
{$endif i386}
end.
diff --git a/compiler/systems/t_emx.pas b/compiler/systems/t_emx.pas
index 85ca4839c2..4f1ed65c90 100644
--- a/compiler/systems/t_emx.pas
+++ b/compiler/systems/t_emx.pas
@@ -542,7 +542,7 @@ end;
*****************************************************************************}
initialization
- RegisterExternalLinker(system_i386_emx_info,TLinkerEMX);
+ RegisterLinker(ld_emx,TLinkerEMX);
RegisterImport(system_i386_emx,TImportLibEMX);
RegisterRes(res_wrc_os2_info,TResourceFile);
RegisterTarget(system_i386_emx_info);
diff --git a/compiler/systems/t_gba.pas b/compiler/systems/t_gba.pas
index ac81d4bbee..2dee4d83ea 100644
--- a/compiler/systems/t_gba.pas
+++ b/compiler/systems/t_gba.pas
@@ -627,6 +627,6 @@ end;
*****************************************************************************}
initialization
- RegisterExternalLinker(system_arm_gba_info,TLinkerGba);
+ RegisterLinker(ld_gba,TLinkerGba);
RegisterTarget(system_arm_gba_info);
end.
diff --git a/compiler/systems/t_go32v2.pas b/compiler/systems/t_go32v2.pas
index e50535869e..f443ec3c59 100644
--- a/compiler/systems/t_go32v2.pas
+++ b/compiler/systems/t_go32v2.pas
@@ -511,7 +511,7 @@ end;
*****************************************************************************}
initialization
- RegisterExternalLinker(system_i386_go32v2_info,TExternalLinkerGo32v2);
- RegisterInternalLinker(system_i386_go32v2_info,TInternalLinkerGo32v2);
+ RegisterLinker(ld_go32v2,TExternalLinkerGo32v2);
+ RegisterLinker(ld_int_go32v2,TInternalLinkerGo32v2);
RegisterTarget(system_i386_go32v2_info);
end.
diff --git a/compiler/systems/t_haiku.pas b/compiler/systems/t_haiku.pas
index 25a7a8a947..448738ec25 100644
--- a/compiler/systems/t_haiku.pas
+++ b/compiler/systems/t_haiku.pas
@@ -491,8 +491,8 @@ end;
*****************************************************************************}
initialization
+ RegisterLinker(ld_haiku,TLinkerhaiku);
{$ifdef i386}
- RegisterExternalLinker(system_i386_haiku_info,TLinkerhaiku);
RegisterImport(system_i386_haiku,timportlibhaiku);
RegisterExport(system_i386_haiku,texportlibhaiku);
RegisterTarget(system_i386_haiku_info);
diff --git a/compiler/systems/t_jvm.pas b/compiler/systems/t_jvm.pas
index e3592c68a3..09c17e6079 100644
--- a/compiler/systems/t_jvm.pas
+++ b/compiler/systems/t_jvm.pas
@@ -94,13 +94,11 @@ end;
*****************************************************************************}
initialization
- RegisterExternalLinker(system_jvm_java32_info, tlinkerjvm);
+ RegisterLinker(ld_jvm, tlinkerjvm);
RegisterImport(system_jvm_java32,timportlibjvm);
RegisterExport(system_jvm_java32,texportlibjvm);
RegisterTarget(system_jvm_java32_info);
-
- RegisterExternalLinker(system_jvm_android32_info, tlinkerjvm);
RegisterImport(system_jvm_android32,timportlibjvm);
RegisterExport(system_jvm_android32,texportlibjvm);
RegisterTarget(system_jvm_android32_info);
diff --git a/compiler/systems/t_linux.pas b/compiler/systems/t_linux.pas
index 3005c5a7fa..6fe68191f9 100644
--- a/compiler/systems/t_linux.pas
+++ b/compiler/systems/t_linux.pas
@@ -502,8 +502,8 @@ begin
end
else
begin
- linklibc:=true;
- end;
+ linklibc:=true;
+ end;
end;
Add(')');
end
@@ -662,7 +662,7 @@ begin
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections.}
add(' . = ALIGN(32 / 8);');
- add(' }');
+ add('}');
add(' . = ALIGN(32 / 8);');
add(' PROVIDE (_end = .);');
add(' PROVIDE (end = .);');
@@ -1276,7 +1276,7 @@ begin
{ See tw9089*.pp: if more than one pure-Pascal shared libs are loaded,
and none have rtld in their DT_NEEDED, then rtld cannot finalize correctly. }
if IsSharedLibrary then
- LinkScript.Concat('READSTATICLIBRARY '+maybequoted(dynlinker));
+ LinkScript.Concat('READSTATICLIBRARY '+maybequoted(sysrootpath+dynlinker));
linkToSharedLibs:=(not SharedLibFiles.Empty);
@@ -1497,67 +1497,58 @@ end;
*****************************************************************************}
initialization
+ RegisterLinker(ld_linux,TLinkerLinux);
+ RegisterLinker(ld_int_linux,TInternalLinkerLinux);
{$ifdef i386}
- RegisterExternalLinker(system_i386_linux_info,TLinkerLinux);
RegisterImport(system_i386_linux,timportliblinux);
RegisterExport(system_i386_linux,texportliblinux);
RegisterTarget(system_i386_linux_info);
- RegisterExternalLinker(system_x86_6432_linux_info,TLinkerLinux);
RegisterImport(system_x86_6432_linux,timportliblinux);
RegisterExport(system_x86_6432_linux,texportliblinux);
RegisterTarget(system_x86_6432_linux_info);
{$endif i386}
{$ifdef m68k}
- RegisterExternalLinker(system_m68k_linux_info,TLinkerLinux);
RegisterImport(system_m68k_linux,timportliblinux);
RegisterExport(system_m68k_linux,texportliblinux);
RegisterTarget(system_m68k_linux_info);
{$endif m68k}
{$ifdef powerpc}
- RegisterExternalLinker(system_powerpc_linux_info,TLinkerLinux);
RegisterImport(system_powerpc_linux,timportliblinux);
RegisterExport(system_powerpc_linux,texportliblinux);
RegisterTarget(system_powerpc_linux_info);
{$endif powerpc}
{$ifdef powerpc64}
- RegisterExternalLinker(system_powerpc64_linux_info,TLinkerLinux);
RegisterImport(system_powerpc64_linux,timportliblinux);
RegisterExport(system_powerpc64_linux,texportliblinux);
RegisterTarget(system_powerpc64_linux_info);
{$endif powerpc64}
{$ifdef alpha}
- RegisterExternalLinker(system_alpha_linux_info,TLinkerLinux);
RegisterImport(system_alpha_linux,timportliblinux);
RegisterExport(system_alpha_linux,texportliblinux);
RegisterTarget(system_alpha_linux_info);
{$endif alpha}
{$ifdef x86_64}
- RegisterExternalLinker(system_x86_64_linux_info,TLinkerLinux);
RegisterImport(system_x86_64_linux,timportliblinux);
RegisterExport(system_x86_64_linux,texportliblinux);
RegisterTarget(system_x86_64_linux_info);
{$endif x86_64}
{$ifdef SPARC}
- RegisterExternalLinker(system_sparc_linux_info,TLinkerLinux);
RegisterImport(system_SPARC_linux,timportliblinux);
RegisterExport(system_SPARC_linux,texportliblinux);
RegisterTarget(system_SPARC_linux_info);
{$endif SPARC}
{$ifdef ARM}
- RegisterExternalLinker(system_arm_linux_info,TLinkerLinux);
RegisterImport(system_arm_linux,timportliblinux);
RegisterExport(system_arm_linux,texportliblinux);
RegisterTarget(system_arm_linux_info);
{$endif ARM}
{$ifdef MIPS}
{$ifdef MIPSEL}
- RegisterExternalLinker(system_mipsel_linux_info,TLinkerLinux);
RegisterImport(system_mipsel_linux,timportliblinux);
RegisterExport(system_mipsel_linux,texportliblinux);
RegisterTarget(system_mipsel_linux_info);
{$else MIPS}
- RegisterExternalLinker(system_mipseb_linux_info,TLinkerLinux);
RegisterImport(system_mipseb_linux,timportliblinux);
RegisterExport(system_mipseb_linux,texportliblinux);
RegisterTarget(system_mipseb_linux_info);
diff --git a/compiler/systems/t_macos.pas b/compiler/systems/t_macos.pas
index 9f99cc2790..0601ba19ed 100644
--- a/compiler/systems/t_macos.pas
+++ b/compiler/systems/t_macos.pas
@@ -248,7 +248,7 @@ initialization
RegisterImport(system_m68k_macos,timportlibmacos);
{$endif m68k}
{$ifdef powerpc}
- RegisterExternalLinker(system_powerpc_macos_info,TLinkerMPW);
+ RegisterLinker(ld_mpw,TLinkerMPW);
RegisterTarget(system_powerpc_macos_info);
RegisterImport(system_powerpc_macos,timportlibmacos);
{$endif powerpc}
diff --git a/compiler/systems/t_morph.pas b/compiler/systems/t_morph.pas
index 68f77079ec..fedd5c329c 100644
--- a/compiler/systems/t_morph.pas
+++ b/compiler/systems/t_morph.pas
@@ -263,6 +263,6 @@ end;
*****************************************************************************}
initialization
- RegisterExternalLinker(system_powerpc_morphos_info,TLinkerMorphOS);
+ RegisterLinker(ld_morphos,TLinkerMorphOS);
RegisterTarget(system_powerpc_morphos_info);
end.
diff --git a/compiler/systems/t_msdos.pas b/compiler/systems/t_msdos.pas
index 2824527817..4afe086667 100644
--- a/compiler/systems/t_msdos.pas
+++ b/compiler/systems/t_msdos.pas
@@ -332,11 +332,11 @@ end;
initialization
{$if defined(USE_LINKER_TLINK)}
- RegisterExternalLinker(system_i8086_msdos_info,TExternalLinkerMsDosTLink);
+ RegisterLinker(ld_msdos,TExternalLinkerMsDosTLink);
{$elseif defined(USE_LINKER_ALINK)}
- RegisterExternalLinker(system_i8086_msdos_info,TExternalLinkerMsDosALink);
+ RegisterLinker(ld_msdos,TExternalLinkerMsDosALink);
{$elseif defined(USE_LINKER_WLINK)}
- RegisterExternalLinker(system_i8086_msdos_info,TExternalLinkerMsDosWLink);
+ RegisterLinker(ld_msdos,TExternalLinkerMsDosWLink);
{$else}
{$fatal no linker defined}
{$endif}
diff --git a/compiler/systems/t_nativent.pas b/compiler/systems/t_nativent.pas
index e4b8fc1329..8c75250f99 100644
--- a/compiler/systems/t_nativent.pas
+++ b/compiler/systems/t_nativent.pas
@@ -85,7 +85,7 @@ implementation
initialization
{$ifdef i386}
{ NativeNT }
- RegisterInternalLinker(system_i386_nativent_info,TInternalLinkerNativeNT);
+ RegisterLinker(ld_int_nativent,TInternalLinkerNativeNT);
RegisterImport(system_i386_nativent,TImportLibNativeNT);
RegisterExport(system_i386_nativent,TExportLibNativeNT);
// RegisterRes(res_gnu_windres_info,TWinLikeResourceFile);
diff --git a/compiler/systems/t_nds.pas b/compiler/systems/t_nds.pas
index 7b7ab351de..16eab29b5e 100644
--- a/compiler/systems/t_nds.pas
+++ b/compiler/systems/t_nds.pas
@@ -775,6 +775,6 @@ end;
*****************************************************************************}
initialization
- RegisterExternalLinker(system_arm_nds_info,TLinkerNDS);
+ RegisterLinker(ld_nds,TLinkerNDS);
RegisterTarget(system_arm_nds_info);
end.
diff --git a/compiler/systems/t_nwl.pas b/compiler/systems/t_nwl.pas
index ed060ca47f..14af613440 100644
--- a/compiler/systems/t_nwl.pas
+++ b/compiler/systems/t_nwl.pas
@@ -624,7 +624,7 @@ end;
initialization
- RegisterExternalLinker(system_i386_netwlibc_info,TLinkerNetwlibc);
+ RegisterLinker(ld_netwlibc,TLinkerNetwlibc);
RegisterImport(system_i386_netwlibc,TImportLibNetwlibc);
RegisterExport(system_i386_netwlibc,TExportLibNetwlibc);
RegisterTarget(system_i386_netwlibc_info);
diff --git a/compiler/systems/t_nwm.pas b/compiler/systems/t_nwm.pas
index 5761cd9fa3..d202893467 100644
--- a/compiler/systems/t_nwm.pas
+++ b/compiler/systems/t_nwm.pas
@@ -980,8 +980,8 @@ end;
initialization
- RegisterExternalLinker(system_i386_netware_info,TLinkerNetware);
- RegisterInternalLinker(system_i386_netware_info,TInternalLinkerNetware);
+ RegisterLinker(ld_netware,TLinkerNetware);
+ RegisterLinker(ld_int_netware,TInternalLinkerNetware);
RegisterImport(system_i386_netware,TImportLibNetware);
RegisterExport(system_i386_netware,TExportLibNetware);
RegisterTarget(system_i386_netware_info);
diff --git a/compiler/systems/t_os2.pas b/compiler/systems/t_os2.pas
index 6549b8a79c..064169836c 100644
--- a/compiler/systems/t_os2.pas
+++ b/compiler/systems/t_os2.pas
@@ -557,7 +557,7 @@ end;
*****************************************************************************}
initialization
- RegisterExternalLinker(system_i386_os2_info,TLinkerOS2);
+ RegisterLinker(ld_os2,TLinkerOS2);
RegisterImport(system_i386_os2,TImportLibOS2);
{ RegisterRes(res_wrc_os2_info,TResourceFile);}
RegisterTarget(system_i386_os2_info);
diff --git a/compiler/systems/t_sunos.pas b/compiler/systems/t_sunos.pas
index fcf613c604..63788fd288 100644
--- a/compiler/systems/t_sunos.pas
+++ b/compiler/systems/t_sunos.pas
@@ -641,22 +641,20 @@ end;
*****************************************************************************}
initialization
+ RegisterLinker(ld_solaris,TLinkerSolaris);
{$ifdef i386}
- RegisterExternalLinker(system_i386_solaris_info,TLinkersolaris);
RegisterImport(system_i386_solaris,TImportLibsolaris);
RegisterExport(system_i386_solaris,TExportLibsolaris);
RegisterTarget(system_i386_solaris_info);
{$endif i386}
{$ifdef x86_64}
- RegisterExternalLinker(system_x86_64_solaris_info,TLinkersolaris);
RegisterImport(system_x86_64_solaris,TImportLibsolaris);
RegisterExport(system_x86_64_solaris,TExportLibsolaris);
RegisterTarget(system_x86_64_solaris_info);
{$endif x86_64}
{$ifdef sparc}
- RegisterExternalLinker(system_sparc_solaris_info,TLinkersolaris);
RegisterImport(system_sparc_solaris,TImportLibsolaris);
RegisterExport(system_sparc_solaris,TExportLibsolaris);
RegisterTarget(system_sparc_solaris_info);
diff --git a/compiler/systems/t_symbian.pas b/compiler/systems/t_symbian.pas
index a11ba00eda..c354e1e5aa 100644
--- a/compiler/systems/t_symbian.pas
+++ b/compiler/systems/t_symbian.pas
@@ -181,8 +181,11 @@ implementation
*****************************************************************************}
initialization
+ { Using external linker as internal doesn't look correct... }
+ RegisterLinker(ld_windows,TExternalLinkerWin);
+ RegisterLinker(ld_int_windows,TInternalLinkerWin);
{$ifdef i386}
- RegisterInternalLinker(system_i386_symbian_info,TExternalLinkerWin);
+ ///RegisterInternalLinker(system_i386_symbian_info,TExternalLinkerWin);
RegisterImport(system_i386_symbian,TImportLibWin);
RegisterExport(system_i386_symbian,TExportLibWin);
RegisterDLLScanner(system_i386_symbian,TDLLScannerWin);
@@ -191,7 +194,7 @@ initialization
{$endif i386}
{$ifdef arm}
// RegisterExternalLinker(system_arm_symbian_info,TExternalLinkerWin);
- RegisterInternalLinker(system_arm_symbian_info,TInternalLinkerWin);
+ ///RegisterInternalLinker(system_arm_symbian_info,TInternalLinkerWin);
RegisterImport(system_arm_symbian,TImportLibWin);
RegisterExport(system_arm_symbian,TExportLibWin);
RegisterTarget(system_arm_symbian_info);
diff --git a/compiler/systems/t_watcom.pas b/compiler/systems/t_watcom.pas
index a497b0b380..2c12eeb87a 100644
--- a/compiler/systems/t_watcom.pas
+++ b/compiler/systems/t_watcom.pas
@@ -174,6 +174,6 @@ end;}
*****************************************************************************}
initialization
- RegisterExternalLinker(system_i386_watcom_info,TLinkerWatcom);
+ RegisterLinker(ld_watcom,TLinkerWatcom);
RegisterTarget(system_i386_watcom_info);
end.
diff --git a/compiler/systems/t_wdosx.pas b/compiler/systems/t_wdosx.pas
index ea8aa01f46..67776395b5 100644
--- a/compiler/systems/t_wdosx.pas
+++ b/compiler/systems/t_wdosx.pas
@@ -74,7 +74,7 @@ end;
*****************************************************************************}
initialization
- RegisterExternalLinker(system_i386_wdosx_info,TExternalLinkerWdosx);
+ RegisterLinker(ld_wdosx,TExternalLinkerWdosx);
RegisterImport(system_i386_wdosx,TImportLibWdosx);
RegisterExport(system_i386_wdosx,TExportLibWdosx);
RegisterDLLScanner(system_i386_wdosx,TDLLScannerWdosx);
diff --git a/compiler/systems/t_wii.pas b/compiler/systems/t_wii.pas
index 837df26d7c..9a4943e853 100644
--- a/compiler/systems/t_wii.pas
+++ b/compiler/systems/t_wii.pas
@@ -592,6 +592,6 @@ end;
*****************************************************************************}
initialization
- RegisterExternalLinker(system_powerpc_wii_info,TLinkerWii);
+ RegisterLinker(ld_wii,TLinkerWii);
RegisterTarget(system_powerpc_wii_info);
end.
diff --git a/compiler/systems/t_win.pas b/compiler/systems/t_win.pas
index 972adece8d..88a23f98c1 100644
--- a/compiler/systems/t_win.pas
+++ b/compiler/systems/t_win.pas
@@ -1815,26 +1815,22 @@ implementation
*****************************************************************************}
initialization
+ RegisterLinker(ld_int_windows,TInternalLinkerWin);
+ RegisterLinker(ld_windows,TExternalLinkerWin);
{$ifdef i386}
{ Win32 }
- RegisterExternalLinker(system_i386_win32_info,TExternalLinkerWin);
- RegisterInternalLinker(system_i386_win32_info,TInternalLinkerWin);
RegisterImport(system_i386_win32,TImportLibWin);
RegisterExport(system_i386_win32,TExportLibWin);
RegisterDLLScanner(system_i386_win32,TDLLScannerWin);
RegisterRes(res_gnu_windres_info,TWinLikeResourceFile);
RegisterTarget(system_i386_win32_info);
{ WinCE }
- RegisterExternalLinker(system_i386_wince_info,TExternalLinkerWin);
- RegisterInternalLinker(system_i386_wince_info,TInternalLinkerWin);
RegisterImport(system_i386_wince,TImportLibWin);
RegisterExport(system_i386_wince,TExportLibWin);
RegisterDLLScanner(system_i386_wince,TDLLScannerWin);
RegisterTarget(system_i386_wince_info);
{$endif i386}
{$ifdef x86_64}
- RegisterExternalLinker(system_x64_win64_info,TExternalLinkerWin);
- RegisterInternalLinker(system_x64_win64_info,TInternalLinkerWin);
RegisterImport(system_x86_64_win64,TImportLibWin);
RegisterExport(system_x86_64_win64,TExportLibWin);
RegisterDLLScanner(system_x86_64_win64,TDLLScannerWin);
@@ -1842,8 +1838,6 @@ initialization
RegisterTarget(system_x64_win64_info);
{$endif x86_64}
{$ifdef arm}
- RegisterExternalLinker(system_arm_wince_info,TExternalLinkerWin);
- RegisterInternalLinker(system_arm_wince_info,TInternalLinkerWin);
RegisterImport(system_arm_wince,TImportLibWin);
RegisterExport(system_arm_wince,TExportLibWin);
RegisterRes(res_gnu_windres_info,TWinLikeResourceFile);