diff options
Diffstat (limited to 'compiler/systems')
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); |