Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 322971 | Differences between
and this patch

Collapse All | Expand All

(-)fpcbuild-2.6.0-1/fpcsrc/compiler/systems/t_linux.pas (-6 / +21 lines)
Lines 388-408 Link Here
388
      { try to add crti and crtbegin if linking to C }
388
      { try to add crti and crtbegin if linking to C }
389
      if linklibc and (libctype<>uclibc) then
389
      if linklibc and (libctype<>uclibc) then
390
       begin
390
       begin
391
         { crtbegin[S|T].o and crti.o should not be used with absolute paths
392
           as FindFile is not locating appropriate library for x86 when
393
           compiling on x86_64 machine (should use /usr/lib32/...). Let
394
           ld find the right one to link with if found in system. }
391
         { crti.o must come first }
395
         { crti.o must come first }
392
         if librarysearchpath.FindFile('crti.o',false,s) then
396
         if librarysearchpath.FindFile('crti.o',false,s) then
393
           AddFileName(s);
397
           AddFileName('crti.o');
394
         { then the crtbegin* }
398
         { then the crtbegin* }
395
         if cs_create_pic in current_settings.moduleswitches then
399
         if cs_create_pic in current_settings.moduleswitches then
396
           begin
400
           begin
397
             if librarysearchpath.FindFile('crtbeginS.o',false,s) then
401
             if librarysearchpath.FindFile('crtbeginS.o',false,s) then
398
               AddFileName(s);
402
               AddFileName('crtbeginS.o');
399
           end
403
           end
400
         else
404
         else
401
           if (cs_link_staticflag in current_settings.globalswitches) and
405
           if (cs_link_staticflag in current_settings.globalswitches) and
402
              librarysearchpath.FindFile('crtbeginT.o',false,s) then
406
              librarysearchpath.FindFile('crtbeginT.o',false,s) then
403
             AddFileName(s)
407
             AddFileName('crtbeginT.o')
404
           else if librarysearchpath.FindFile('crtbegin.o',false,s) then
408
           else if librarysearchpath.FindFile('crtbegin.o',false,s) then
405
             AddFileName(s);
409
             AddFileName('crtbegin.o');
406
       end;
410
       end;
407
      { main objectfiles }
411
      { main objectfiles }
408
      while not ObjectFiles.Empty do
412
      while not ObjectFiles.Empty do
Lines 481-491 Link Here
481
      { objects which must be at the end }
485
      { objects which must be at the end }
482
      if linklibc and (libctype<>uclibc) then
486
      if linklibc and (libctype<>uclibc) then
483
       begin
487
       begin
488
         { crtend[S].o and crtn.o should not be used with absolute paths
489
           as FindFile is not locating appropriate library for x86 when
490
           compiling on x86_64 machine (should use /usr/lib32/...). Let
491
           ld find the right one to link with if found in system. }
484
         if cs_create_pic in current_settings.moduleswitches then
492
         if cs_create_pic in current_settings.moduleswitches then
485
           found1:=librarysearchpath.FindFile('crtendS.o',false,s1)
493
           begin
494
             found1:=librarysearchpath.FindFile('crtendS.o',false,s1);
495
             if found1 then s1:='crtendS.o';
496
           end
486
         else
497
         else
487
           found1:=librarysearchpath.FindFile('crtend.o',false,s1);
498
           begin
499
             found1:=librarysearchpath.FindFile('crtend.o',false,s1);
500
             if found1 then s1:='crtend.o';
501
           end;
488
         found2:=librarysearchpath.FindFile('crtn.o',false,s2);
502
         found2:=librarysearchpath.FindFile('crtn.o',false,s2);
503
         if found2 then s2:='crtn.o';
489
         if found1 or found2 then
504
         if found1 or found2 then
490
          begin
505
          begin
491
            Add('INPUT(');
506
            Add('INPUT(');

Return to bug 322971