Lazarus

Announcements => Free Pascal => Topic started by: FPK on October 25, 2021, 07:57:25 am

Title: Preparing FPC 3.2.4, point out road blocks now
Post by: FPK on October 25, 2021, 07:57:25 am
Currently we are in the process of preparing the 3.2.4 release, mainly by merging stuff from main into fixes. If there are any problems with 3.2.2 prevent you from using 3.2.2, it is now the time to point this out :), i.e. if you are stuck with 3.0.4 for some reasons.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: marcov on October 25, 2021, 09:29:11 am
Test with the FIXES_3_2 branch, FPC 3.2.3 that is.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Alextp on October 25, 2021, 12:49:26 pm
I wonder when the FreeBSD patch will be merged? https://github.com/Alexey-T/CudaText/blob/master/doc/freebsd-v12-support-for-fpc32.patch
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 25, 2021, 02:21:39 pm
Currently we are in the process of preparing the 3.2.4 release, mainly by merging stuff from main into fixes. If there are any problems with 3.2.2 prevent you from using 3.2.2, it is now the time to point this out :), i.e. if you are stuck with 3.0.4 for some reasons.

Hello.

Nice!

Please, if possible, could you make work -Cg -k-pie -k-znow for Linux?

See here:
https://forum.lazarus.freepascal.org/index.php/topic,56842.0.html

It works perfectly with fpc 3.0.4 and fpc 3.3.1.

You may test it compiling a application using BGRABitmap or Zeos lib, no luck with fpc 3.2.0 or 3.2.2 but ok with fpc 3.0.4 / 3.3.1.

Thanks.

PS: It would be super great if this could be fixed:
https://gitlab.com/freepascal.org/fpc/source/-/issues/32367
But yes, I know, I dream and ask too much for this.

Fre;D
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 25, 2021, 02:55:28 pm
I wonder when the FreeBSD patch will be merged? https://github.com/Alexey-T/CudaText/blob/master/doc/freebsd-v12-support-for-fpc32.patch

Yes, please, mainly changing with this:

Code: Pascal  [Select][+][-]
  1.  if target_info.system in (systems_openbsd+systems_freebsd+[system_x86_64_dragonfly]) then
  2.  LdProgram:='ld.bfd';

And the rest of the patch too. ( Thanks Alex )
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: FPK on October 25, 2021, 09:08:25 pm
I wonder when the FreeBSD patch will be merged? https://github.com/Alexey-T/CudaText/blob/master/doc/freebsd-v12-support-for-fpc32.patch

Is this a regression with regard to 3.2.2 or 3.0.4? If not, please do not glutter this thread with unrelated stuff.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Alextp on October 25, 2021, 09:10:16 pm
No, it's not a regression, sorry.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Seenkao on October 25, 2021, 09:34:04 pm
Сделать обработку оптимизации для каждой ОС. Ссылки и код.

Eng: Do optimization processing for each OS. Links and code:

https://forum.lazarus.freepascal.org/index.php/topic,56719.0.html
FPC 3.2.1, Linux-Debian 10
-al
Code: Pascal  [Select][+][-]
  1.   useEl^.rh2 := ry1 + 30 + 33;
  2. // assembler
  3. //      movaps  %xmm1,%xmm2
  4. //      movq    _$DRAWALL$_Ld1@GOTPCREL(%rip),%rdx
  5. //      addss   (%rdx),%xmm2
  6. //      movq    _$DRAWALL$_Ld48@GOTPCREL(%rip),%rdx
  7. //      addss   (%rdx),%xmm2
  8. //      movss   %xmm2,28(%rax)
  9. .Ll56:
  10.   useEl^.tx21 := rx1 + 5;
  11. // assembler
  12. //      movaps  %xmm0,%xmm2
  13. //      movq    _$DRAWALL$_Ld16@GOTPCREL(%rip),%rdx
  14. //      addss   (%rdx),%xmm2
  15. //      movss   %xmm2,56(%rax)

Interestingly, Delphi considers constants as a Double type, but sums constants at compile time, no matter in what order it go.
From Delphi 10.4 disassembler:
Code: ASM  [Select][+][-]
  1. Project1.dpr.10: R.rh2 := 30 + 33 + D + 28;
  2. 000000000040D51F F3480F5A0580280000 cvtss2sd xmm0,qword ptr [rel $00002880]
  3. 000000000040D528 F20F580528000000 addsd xmm0,qword ptr [rel $00000028]
  4. 000000000040D530 F2480F5AC0       cvtsd2ss xmm0,xmm0
  5. 000000000040D535 F30F1105A38C0000 movss dword ptr [rel $00008ca3],xmm0

Я проверил и для FPC/Lazarus, код получается подобный Delphi. Данная оптимизация работает на Windows. Но не работает на Linux.

При одном и том же коде паскаля это потеря примерно 8% скорости работы кода для Linux (где это используется).

Eng: I also checked for FPC/Lazarus, the code turns out to be similar to Delphi. This optimization works on Windows. But it doesn't work on Linux.

With the same pascal code, this is a loss of about 8% of the code speed for Linux (where it is used).
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: FPK on October 25, 2021, 09:41:56 pm
Currently we are in the process of preparing the 3.2.4 release, mainly by merging stuff from main into fixes. If there are any problems with 3.2.2 prevent you from using 3.2.2, it is now the time to point this out :), i.e. if you are stuck with 3.0.4 for some reasons.

Hello.

Nice!

Please, if possible, could you make work -Cg -k-pie -k-znow for Linux?

See here:
https://forum.lazarus.freepascal.org/index.php/topic,56842.0.html

It works perfectly with fpc 3.0.4 and fpc 3.3.1.

Can you please check after baa28faa19 with main/3.3.1? If it helps, I merge it.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 25, 2021, 11:47:02 pm
Can you please check after baa28faa19 with main/3.3.1? If it helps, I merge it.

Hello Florian.

Downloaded commit of today 25/10/2021 23:10 : 5c7974fceb768f96853b4abc05cb122ac8ccfd0c
from https://gitlab.com/freepascal.org/fpc/source main branch.

Compiled + installed = OK.

Using -Cg -k-pie -k-znow for a program with BGRABitmap.

It compiles and link without any warning at linking.  ;D

Quote
Hint: (11030) Start of reading config file /etc/fpc.cfg
Hint: (11031) End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 3.3.1 [2021/10/25] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
(1002) Target OS: Linux for x86-64
(3104) Compiling strumpract.pas
...
(9015) Linking strumpract
(1008) 567509 lines compiled, 14.7 sec, 4011696 bytes code, 2594736 bytes data
(1021) 184 warning(s) issued
(1022) 3112 hint(s) issued
(1023) 407 note(s) issued

Result:

Code: Bash  [Select][+][-]
  1. fred@fredvs ~> file /home/fred/strumpract/src/strumpract

Quote
/home/fred/strumpract/src/strumpract: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.4.0, stripped

Conclusion, yes, perfect.

Fre;D
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 25, 2021, 11:58:17 pm
Ooooops, sorry but there is problem.

The program does not run any more with or without -Cg -k-pie -k-znow...  :-\

I try to debug it but not easy, no infos.

Not sure it comes from your commit, I will (try to) find from witch commit.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 26, 2021, 02:14:50 am
Hello.

After high fight I found the commit that makes me problems:
Commit ee10850a of 17 Oct, 2021: Reducing and aligning ...
https://gitlab.com/freepascal.org/fpc/source/-/commit/ee10850a5793b69b19dc82b9c28342bdd0018f2e

Since that commit all my applications do not run anymore.

So maybe your patch for fpc 3.2.4 for -Cg will work but I cannot test it with last trunk 3.3.1 ( because of this ee10850a commit ).

[Out of the subject of the topic]
For msegui and some other console apps (did not test LCL), there is a serious problem since commit ee10850a5793.

Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 26, 2021, 02:41:05 am
The last for tonight, I promise.

I did try this:
Use the last trunk 3.3.1 but revert the change done in commit ee10850a ( replace all the files changed by those before commit ee10850a. )

FPC compile + install + run : OK.  :)

My apps: compiling + linking with or without -Cg + running : OK.  ;)
And the pie binary is created and runs too!

So last conclusion: OK for your commit baa28faa19 but not very OK for commit ee10850a.

Fre;D
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: PascalDragon on October 26, 2021, 08:57:50 am
PS: It would be super great if this could be fixed:
https://gitlab.com/freepascal.org/fpc/source/-/issues/32367
But yes, I know, I dream and ask too much for this.

This is not a regression and thus this has no place in this thread.

Eng: Do optimization processing for each OS. Links and code:

Is this a regression from 3.0.4 or 3.2.0? If not, then this has no place here.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: dbannon on October 26, 2021, 10:04:35 am


OK, I pulled down fixes_3_2 from gitlab as a zip file (so fast !) and compiled with my existing FPC3.2.0. Compiled and installed cleanly but -

Code: Pascal  [Select][+][-]
  1. dbannon@dell:~/bin/FPC/fixes_3_2/SRC$ ../bin/fpc -iV
  2. 3.2.0

The version.pas file says -

Code: Pascal  [Select][+][-]
  1.     Copyright (c) 1998-2002 by Florian Klaempfl
  2. ....
  3.     const
  4.        { version string }
  5.        version_nr = '3';
  6.        release_nr = '2';
  7.        patch_nr   = '3';
  8.        minorpatch = '';

I have definitly NOT got my existing fpc -

Code: Pascal  [Select][+][-]
  1. dbannon@dell:~/bin/FPC$ ls -l fpc-3.2.0/bin/fpc
  2. -rwxr-xr-x 1 dbannon dbannon 513952 Jun 15  2020 fpc-3.2.0/bin/fpc
  3. dbannon@dell:~/bin/FPC$ ls -l fixes_3_2/bin/fpc
  4. -rwxr-xr-x 1 dbannon dbannon 518512 Oct 26 18:47 fixes_3_2/bin/fpc


Should I be surprised ?  Am I testing what I think I am testing ?

Davo
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 26, 2021, 02:00:09 pm
Hello.

I did try to compile my apps with last commit of fixes_3_2.

Code: Pascal  [Select][+][-]
  1. fred@ /usr/lib/fpc/3.2.3/ppcx64 -iV
Quote
3.2.3

OK, even without your -Xg baa28faa19 patch, now it compiles and link ( with a warning ) and run all my apps with -Cg.

Quote
Hint: (11030) Start of reading config file /etc/fpc.cfg
Hint: (11031) End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 3.2.3 [2021/10/26] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
(1002) Target OS: Linux for x86-64
(3104) Compiling strumpract.pas
...
(9015) Linking strumpract
/usr/bin/ld: /usr/lib/fpc/3.2.3/units/x86_64-linux/rtl/si_c.o: warning: relocation in read-only section `.text.n_si_c_$$__fpc_libc_start'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
(1008) 567509 lines compiled, 15.7 sec
(1021) 128 warning(s) issued
(1022) 2961 hint(s) issued
(1023) 545 note(s) issued

So, nice, already without patch, fpc 3.2.3 can create pie (with a warning) apps that use BGRABitmap.
[EDIT] Imho the warning is ok because it shows that the pie linking was done.

Fre;D


Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 26, 2021, 02:26:11 pm
I Am I testing what I think I am testing ?
Davo

Hello Davo.

I do this and it install fpc 3.2.3 out-of-the-box:

1) Download source + unzip : https://gitlab.com/freepascal.org/fpc/source/-/archive/fixes_3_2/source-fixes_3_2.zip

2) Create a script file named "build_fpc64_linux.sh" and save it into /source-fixes_3_2/build_fpc64_linux.sh

Here the script:

Code: Pascal  [Select][+][-]
  1. #!/bin/sh
  2.  
  3. COMPILER=/usr/lib/fpc/3.2.0/ppcx64
  4.  
  5. make clean
  6. make all FPC=$COMPILER OPT="-Fl/usr/local/lib"
  7. make FPC=$COMPILER install INSTALL_PREFIX=/usr/
  8.  

Then do :
Code: Pascal  [Select][+][-]
  1. > cd /thedirectoryof/source-fixes_3_2/

Then
Code: Pascal  [Select][+][-]
  1. sudo build_fpc64_linux.sh

It will compile + install fpc 3.2.3 in /usr/lib/fpc/3.2.3/

Fre;D



Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: dbannon on October 26, 2021, 02:41:52 pm
I Am I testing what I think I am testing ?
Davo

Hello Davo.

I do this and it install fpc 3.2.3 out-of-the-box:
....

Thanks Fred, I am doing pretty much the same but not installing into root space.

But when you do as you say, does your Fixes install claim to be version 3.2.0 ?

Davo
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 26, 2021, 02:49:08 pm
But when you do as you say, does your Fixes install claim to be version 3.2.0 ?

Davo

Sorry but I dont understand.
What fixes, in previous post it is only to compile + install original fpc 3.2.3.

Are you talking about a warning when I did the fixes for fpc 3.3.1 ( reverted a problematic commit )?
If so, also no claim at installation.

But maybe I miss something.

Fre;D
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Seenkao on October 26, 2021, 07:48:10 pm
Is this a regression from 3.0.4 or 3.2.0? If not, then this has no place here.
Да, я неправильно понял суть топика. Это не регресс, это обычное поведение для всех компиляторов 3.0.4, 3.2.1, 3.2.2.

Видимо это ни когда не случится.... ))) Уже давно было ввести переменные, которые подменяют числа и для Linux (и вероятно для многих других систем, кроме Windows - где это сделано).

Извиняюсь, что потревожил.

Eng:Yes, I misunderstood the essence of the topic. This is not a regression, this is the usual behavior for all compilers 3.0.4, 3.2.1, 3.2.2.

Apparently this will never happen....))) It has long been possible to introduce variables that substitute numbers for Linux (and probably for many other systems other than Windows - where this is done).

I'm sorry for disturbing you.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: FPK on October 26, 2021, 08:23:26 pm
Hello.

After high fight I found the commit that makes me problems:
Commit ee10850a of 17 Oct, 2021: Reducing and aligning ...
https://gitlab.com/freepascal.org/fpc/source/-/commit/ee10850a5793b69b19dc82b9c28342bdd0018f2e

Since that commit all my applications do not run anymore.

So maybe your patch for fpc 3.2.4 for -Cg will work but I cannot test it with last trunk 3.3.1 ( because of this ee10850a commit ).

[Out of the subject of the topic]
For msegui and some other console apps (did not test LCL), there is a serious problem since commit ee10850a5793.

Well, they probably make assumptions about internla structures they shouldn't:

https://wiki.freepascal.org/User_Changes_Trunk#System_-_Ref._count_of_strings

But please keep such unrelated things out of this thread. It is about regressions of 3.2.3 against 3.2.2 and 3.0.4
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 26, 2021, 08:41:20 pm
But please keep such unrelated things out of this thread. It is about regressions of 3.2.3 against 3.2.2 and 3.0.4

OK, ok ( but you asked me  :-[) :
Quote
Can you please check after baa28faa19 with main/3.3.1? If it helps, I merge it.

And to check it, better to be able to run it...
Anyway, like explained in last post, with last fixes-3.2.3 the PIE binary is created at linking with a warning from linker and runs ok, like with fpc 3.0.4 (where there was no warning).

With your patch pic-field, the link is OK too, without any warning.
Imho a little note like "PIE link done." would be welcome, my 0.0001 cent, of course.

Fre;D

PS: If you want, I may apply your pic-field patch for 3.3.1 to  3.2.3 and see if all is OK ( but it should be ok ).
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: dbannon on October 27, 2021, 01:20:50 am

Sorry but I dont understand.
What fixes, in previous post it is only to compile + install original fpc 3.2.3.


When I download FPC fixes_3_2, compile and install, the resulting fpc reports itself as being 3.2.0 - I expect it to be 3.2.3 as mentioned several times in this thread.

Just to be clear, I download https://gitlab.com/freepascal.org/fpc/source/-/archive/fixes_3_2/source-fixes_3_2.zip. It includes a version.pas file that does have appropriate version numbers in it (but a very out of date copyright statement) but when that source is used, compiled and installed I get -

Code: Pascal  [Select][+][-]
  1. dbannon@dell:~/bin/FPC/fixes_3_2/bin$ pwd
  2. /home/dbannon/bin/FPC/fixes_3_2/bin
  3. dbannon@dell:~/bin/FPC/fixes_3_2/bin$ ls -la fpc
  4. -rwxr-xr-x 1 dbannon dbannon 518512 Oct 26 18:47 fpc
  5. dbannon@dell:~/bin/FPC/fixes_3_2/bin$ ./fpc -iV
  6. 3.2.0                                         // this line should say 3.2.3 IMHO
  7. dbannon@dell:~/bin/FPC/fixes_3_2/bin$

See, fpc -iv reports itself as being 3.2.0, -iW reports the same thing - I would expect it to be 3.2.3 or, even 3.2.2 but certainly not 3.2.0.  And the copyright ....

I would like to test fixes_3_2, the one that is likely to become 3.2.4 shortly, I believe it is tagged 3.2.3. Like you Fred, I am interested in the Hardening, especially if changes are being made to how it works this late in the process. I think its important that end users like me test things like FPC but if I cannot be sure just what I am testing, there is no point.

I am the first to admit I may be doing something wrong, but if I am, maybe its because the correct process is unclear ?  Other potential users may be just as silly as I apparently am.

Davo
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 27, 2021, 01:40:06 am

I am the first to admit I may be doing something wrong, but if I am, maybe its because the correct process is unclear ?  Other potential users may be just as silly as I apparently am.

Davo

Please, could you give the script that you used to compile + install fpc?

[EDITED]

Here the content of /compiler/version.pas that I get from  https://gitlab.com/freepascal.org/fpc/source/-/archive/fixes_3_2/source-fixes_3_2.zip.

Code: Pascal  [Select][+][-]
  1. unit version;
  2.  
  3. {$i fpcdefs.inc}
  4.  
  5. interface
  6.  
  7.     const
  8.        { version string }
  9.        version_nr = '3';
  10.        release_nr = '2';
  11.        patch_nr   = '3';
  12.        minorpatch = '';

Very strange that you get something else...
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: dbannon on October 27, 2021, 03:45:56 am

Please, could you give the script that you used to compile + install fpc?

No script needed, its just -
Code: Pascal  [Select][+][-]
  1. make all
  2. make install INSTALL_PREFIX=/home/dbannon/bin/FPC/fixes_3_2/
Thats all I have ever used for that job.

Quote
Here the content of /compiler/version.pas that I get from  https://gitlab.com/freepascal.org/fpc/source/-/archive/fixes_3_2/source-fixes_3_2.zip.

Yes, I quoted the same content from version.pas several posts ago. Thats why I considered it worth raising.

I think I will try the same process on a clean vm, but it will require FPC3.2.[0,2] of course....

Davo
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: Fred vS on October 27, 2021, 04:28:42 am
Hello Davo.

Yep, I think I get it.

Indeed, doing like you did, not in /usr/  but in directory /home/fred/fpc_test/ :

Testing fpc:

Code: Pascal  [Select][+][-]
  1. /home/fred/fpc_test/bin/fpc -iV
Quote
3.2.2

But if you test ppcx64

Code: Pascal  [Select][+][-]
  1.  /home/fred/fpc_test/lib/fpc/3.2.3/ppcx64 -iV
Quote
3.2.3

Indeed, very strange....

[EDIT] And I confirm that my /usr/bin/fpc also show 3.2.2 ( the compiler used to compile ppcx64 ), so yes, imho there is something not normal.

Fre;D

Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: dbannon on October 27, 2021, 07:32:32 am
OK, so, what I see now - we are both building FPC 3.2.3 but we are using a different compiler to build it, there is a pattern -

Fred uses 3.2.2 to compile and gets a fpc that thinks its 3.2.2

Davo uses 3.2.0 to compile and gets a fpc that thinks its 3.2.0

So, Davo tries a clean vm, installs from the ubuntu repo 3.2.2 and uses that to build the 3.2.3 source, and, you guessed it, the result thinks its 3.2.2 !

So, the version that fpc reports does not depend on its own source code, it depends on the version of the compiler used to build it !  Maybe the build process is intended to use the newly build ppcx64 to build fpc but somehow ends up using the underlying 'old' one ?

And yep, testing ppcx64 does report 3.2.3 - thats positive at least.

Davo
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: dbannon on October 27, 2021, 09:43:26 am
...
No, you shouldn't be surprised and no, you're not testing what you think you're testing.

The fpc compiler driver binary picks up the real backend compiler binaries either if they're in the same directory (e.g. on Windows or if you install using our installation scripts provided with the binary releases) or if they're in PATH. If you simply do a make install neither will be true. So you need to temporary put lib/fpc/3.2.3/ (where ppcx64 resides) into your PATH (at the front) so that the correct binary is picked up.

Indeed, I worked out at least some of that just now.  I found that by putting the (3.2.3) ppcx64 in the same directory as the fpc executable (much as I do when setting up a cross compiler), I got the result I expected.  My initial test was a little artificial, not having my PATH pointing to the new fpc. Now I can confidently test properly, for that I will have to change my PATH.

Thanks PascalDragon, I feel a lot more comfortable now.

Davo
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: PascalDragon on October 28, 2021, 09:09:38 am
Thanks PascalDragon, I feel a lot more comfortable now.

Good. :)

By the way: can it be that someone removed the post of mine that dbannon quoted from? :o
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: avk on October 28, 2021, 09:47:17 am
Аccidentally discovered that FPC 3.2.2(and 3.3.1)-win64 lacks compiled units for the GMP package. Are there any reasons for this?
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: marcov on October 28, 2021, 12:34:43 pm
Аccidentally discovered that FPC 3.2.2(and 3.3.1)-win64 lacks compiled units for the GMP package. Are there any reasons for this?

Headers are generally only enabled for targets that they were confirmed to fully work.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: avk on October 28, 2021, 12:50:22 pm
Thank you.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: BeniBela on November 06, 2021, 06:36:59 pm
This bug affects 3.2.3: https://gitlab.com/freepascal.org/fpc/source/-/issues/35651
Title: OS X 10.8.5 fixes32 build failure
Post by: trev on November 15, 2021, 10:52:39 am
Mountain Lion 10.8.5 (Intel) fails to build FPC 3.2 Fixes. The cause is the codesign command:

   /usr/bin/codesign --remove-signature ppc3.tmp 
  ppc3.tmp: unsupported type or version of signature
  make[2]: *** [cycle] Error 1
  make[1]: *** [compiler_cycle] Error 2
  make: *** [build-stamp.x86_64-darwin] Error 2


I could not remove the signature either, but I could re-sign it with:

  /usr/bin/codesign --force --sign - ppc3.tmp

although the Makefile only wants to remove a signature and not re-sign the executables. It turns out that the codesign utility for Mountain Lion lacks the --remove-signature option.

Code: Text  [Select][+][-]
  1. trev@dynamic37 [/Users/trev/fpc_fixes32/compiler] $ codesign
  2. Usage: codesign -s identity [-fv*] [-o flags] [-r reqs] [-i ident] path ... # sign
  3.        codesign -v [-v*] [-R testreq] path|pid ... # verify
  4.        codesign -d [options] path ... # display contents
  5.        codesign -h pid ... # display hosting paths

[Updated]
 The same issue also applies to OS X Maevricks, OS X Yosemite, OS X El Capitan and macOS Sierra.

[Updated2]
My workaround was to create a fake codesign and ensure it was found first in the path.

Jonas suggested that you can provide a custom codesign command via the CODESIGN=xxx make parameter. You could use CODESIGN=/usr/bin/true to work around it.
Title: Re: Preparing FPC 3.2.4, point out road blocks now
Post by: BeniBela on December 21, 2021, 12:26:02 pm
Big road blocks for ARM:

https://gitlab.com/freepascal.org/fpc/source/-/issues/39490

https://gitlab.com/freepascal.org/fpc/source/-/issues/39492
TinyPortal © 2005-2018