Recent

Author Topic: Fpcupdeluxe  (Read 362693 times)

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1122
Re: Fpcupdeluxe
« Reply #150 on: November 27, 2016, 09:30:33 am »
Well Josh, welcome to the bug-hunters-society ... you have found yourself a very nice Lazarus bug !

Rev 53397 adds CompareText in two places inside fileprocs.pas
If you look closely at fileprocs.pas, you can see that CompareText is used in more places.
But in these other places, it is prepended by SysUtils, so CompareText can be found at the right location.

Rev 53397 adds CompareText without this additional denominator.

So, this bug can be solved by replacing CompareText with SysUtils.CompareText !
See:
http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/components/codetools/fileprocs.pas?root=lazarus&r1=53397&r2=53396&pathrev=53397

You can test for yourself.
Install trunk/trunk with fpcupdeluxe.
It will fail.
Edit fileprocs.pas (add SysUtils. in two places).
Goto setup+ of fpcupdeluxe.
Enable FPC/Laz rebuild only. Start install/update. Success !

josh

  • Hero Member
  • *****
  • Posts: 754
Re: Fpcupdeluxe
« Reply #151 on: November 27, 2016, 11:41:50 am »
Hi

I tried reporting the bug in bugtracker, but message was its a configuration problem, and the issue has been marked as resolved.

http://bugs.freepascal.org/view.php?id=31008

So DO I create a new issue with the same details? As the issue is not resolved and clearly a bug.

I appreciate your help, and allowing me to get a working latest trunk by explicitly using the correct comparetext functions in fileproc

Development Installation Lazarus 1.3, FPC 2.7.1,Windows 7/8 32/64, OSX, *nix

Test Environment Lazarus & FPC Trunk on Windows and OSX (Cocoa Mainly on OSX). Testing also Crosscompile windows to OSX.. 
Any posts made from 2015 will be based on Lazarus Trunk.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3633
  • I like bugs.
Re: Fpcupdeluxe
« Reply #152 on: November 27, 2016, 11:58:14 am »
josh, sorry, your report
 http://bugs.freepascal.org/view.php?id=31008
was correct after all.
I fixed it. Please test.

josh

  • Hero Member
  • *****
  • Posts: 754
Re: Fpcupdeluxe
« Reply #153 on: November 27, 2016, 01:25:19 pm »
Hi JuhaManninen,

The SysUtils.comparetext works as in post.

Also adding

 {$IFnDEF Windows}
   {$IFDEF darwin}
     MacOSAll,
   {$ENDIF}
   Unix,
 {$ENDIF}

to the File Procs Uses statement at Line 35, and removing from implementation also works. This is the better option.

Has svn been updated?; so I can test this also.
It takes about 90 minutes for me to download and test of complete trunk ( removing all previous data).
Development Installation Lazarus 1.3, FPC 2.7.1,Windows 7/8 32/64, OSX, *nix

Test Environment Lazarus & FPC Trunk on Windows and OSX (Cocoa Mainly on OSX). Testing also Crosscompile windows to OSX.. 
Any posts made from 2015 will be based on Lazarus Trunk.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3633
  • I like bugs.
Re: Fpcupdeluxe
« Reply #154 on: November 27, 2016, 01:37:22 pm »
Has svn been updated?; so I can test this also.
Yes, in r53468 as you can see in the bug report's "Fixed in Revision" field.

Quote
It takes about 90 minutes for me to download and test of complete trunk ( removing all previous data).
Don't remove all previous data!
Just do "svn up" and you are good.
Please learn to use revision control tools properly. Their big benefit is that network traffic is minimized because only the latest diffs are downloaded.

BTW, Mattias removed the MacOSAll reference.
Now the CompareText calls would work also without a "SysUtils." prefix.
« Last Edit: November 27, 2016, 02:01:02 pm by JuhaManninen »

wp

  • Hero Member
  • *****
  • Posts: 6231
Re: Fpcupdeluxe
« Reply #155 on: November 29, 2016, 06:24:24 pm »
DonAlfredo, is there a way to have fpcupdeluxe run only "svn up" + "make" once a complete installation has been performed?
Lazarus trunk / fpc 3.0.4 / all 32-bit on Win-10

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1122
Re: Fpcupdeluxe
« Reply #156 on: November 29, 2016, 07:36:40 pm »
That is exactly what fpcupdeluxe does !

Everytime you press install/update, it will:
a: get the whole repo (big download) for a new install.
b: if the repo is there, just do an update (svn up).

wp

  • Hero Member
  • *****
  • Posts: 6231
Re: Fpcupdeluxe
« Reply #157 on: November 29, 2016, 10:08:50 pm »
Then something is wrong...

I always wondered why it takes so long to build a system with fpcup and now with fpcupdeluxe. Today I erased my old fpcupdeluxe destination folder, downloaded your precompiled v1.02 for Win and installed fpc trunc and laz trunk, no modules, no cross-compiler. It took 30 minutes.

Then after some time I saw that there was an update in the Lazarus files, and I decided to call fpcupdeluxe again. Now I clicked only on the Lazarus button because I knew from svn that there were no changes in fpc. This took 15 minutes.

Is this really correct?

Normally, on my developing system with fpc 3.0, I call svn up using TortoiseSVN for the Lazarus files which takes something like 10 seconds. Then I rebuild the IDE with the routine built into Lazarus, and this usually does not take longer than 1 minute.

Something is wrong with fpcup. At first, I have the feeling that the "update" rebuilds the documentation files which should be done only optionally. And I have the feeling that everything is done twice, towards the end of the process I saw some messges labelled as x86-64. Why 64 bit? I do not want to cross-compile.
Lazarus trunk / fpc 3.0.4 / all 32-bit on Win-10

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1122
Re: Fpcupdeluxe
« Reply #158 on: November 29, 2016, 10:24:04 pm »
Well, your first question was about the download.
And that is done by a svn up. As it should be.

Your second question is the rebuild-system that is used by fpcup.
That is something else ... and there is definitely something special about it.

If you use fpcup (32bit) on Windows, there is always a cross-compiler : 32 -> 64. A rebuild will include this cross-compiler.
A rebuild will also include the standard packages. A rebuild will remove the custom packages.

The rebuild process itself is not very good: it is working, but consumes a lot of time as you have encountered. At the moment, I am working on it, but struggling now for quite some time with regressions that are hard to solve. So stay tuned. Its not 100% wrong, but it is definitely very inefficient.

wp

  • Hero Member
  • *****
  • Posts: 6231
Re: Fpcupdeluxe
« Reply #159 on: November 29, 2016, 10:38:14 pm »
Was my impression correct that the help files are always recreated in each run? I remember in fpcup there was an option to turn this off. Shouldn't this be exposed in fpcupdeluxe?
Lazarus trunk / fpc 3.0.4 / all 32-bit on Win-10

lainz

  • Hero Member
  • *****
  • Posts: 3223
    • Lainz
Re: Fpcupdeluxe
« Reply #160 on: November 30, 2016, 12:06:55 am »
Was my impression correct that the help files are always recreated in each run? I remember in fpcup there was an option to turn this off. Shouldn't this be exposed in fpcupdeluxe?

There is a setting in Setup+ button.

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1122
Re: Fpcupdeluxe
« Reply #161 on: November 30, 2016, 03:23:35 pm »
New release : v1.1.0 :
https://github.com/newpascal/fpcupdeluxe/releases/tag/v1.1.0

This release allows for the split between FPC-sources and FPC-bins.
The original fpc(laz)up did put all sources and binaries in the same location.

Some minor improvements regarding the previous forum questions are also included.

macmike

  • Jr. Member
  • **
  • Posts: 86
    • Soft-Practice
Re: Fpcupdeluxe
« Reply #162 on: December 02, 2016, 08:23:32 pm »
I've come a fair way... I'm trying to cross compile from Linux Mint 64-bit to Linux ARM (for RPi) using fpcupdeluxe v1.1.0a
I've successfully installed FPC+Laz using the fixes branch and now I've selected arm-linux and hit "install cross-compiler".

I have Lazarus working on my RPI3 but can't get it to install on my RPI2 so I'm hoping to cross compile for the 2.

Here's the bottom of the message stack:

Code: Pascal  [Select]
  1. make -C linux all
  2. make[5]: Entering directory `/home/mike/fpcupdeluxe/fpc/rtl/linux'
  3. /bin/mkdir -p /home/mike/fpcupdeluxe/fpc/rtl/units/arm-linux
  4. /usr/local/bin/as  -o /home/mike/fpcupdeluxe/fpc/rtl/units/arm-linux/prt0.o arm/prt0.as
  5. /usr/local/bin/as   -o /home/mike/fpcupdeluxe/fpc/rtl/units/arm-linux/dllprt0.o arm/dllprt0.as
  6. /usr/local/bin/as  -o /home/mike/fpcupdeluxe/fpc/rtl/units/arm-linux/cprt0.o arm/cprt0.as
  7. /usr/local/bin/as  -o /home/mike/fpcupdeluxe/fpc/rtl/units/arm-linux/gprt0.o arm/gprt0.as
  8. /usr/local/bin/as  -o /home/mike/fpcupdeluxe/fpc/rtl/units/arm-linux/ucprt0.o arm/ucprt0.as
  9. arm/dllprt0.as: Assembler messages:
  10. arm/dllprt0.as:19: Error: unrecognised symbol type ""
  11. arm/dllprt0.as:22: Error: unrecognised symbol type ""
  12. arm/dllprt0.as:24: Error: too many memory references for `mov'
  13. arm/dllprt0.as:25: Error: no such instruction: `stmfd sp!,{fp,ip,lr,pc}'
  14. arm/dllprt0.as:26: Error: too many memory references for `sub'
  15. arm/dllprt0.as:29: Error: no such instruction: `ldr ip,=operatingsystem_parameter_argc'
  16. arm/dllprt0.as:30: Error: invalid char '[' beginning operand 2 `[ip]'
  17. arm/dllprt0.as:32: Error: no such instruction: `ldr ip,=operatingsystem_parameter_argv'
  18. arm/dllprt0.as:33: Error: invalid char '[' beginning operand 2 `[ip]'
  19. .
  20. .
  21. .
  22. <lots of this kind of thing/>
  23. .
  24. .
  25. .
  26. arm/ucprt0.as:145: Error: no such instruction: `b __uClibc_main'
  27. arm/ucprt0.as:148: Error: no such instruction: `bl abort'
  28. arm/ucprt0.as:151: Error: unrecognised symbol type ""
  29. arm/ucprt0.as:153: Error: no such instruction: `swi 0x900001'
  30. arm/ucprt0.as:154: Error: no such instruction: `b _haltproc'
  31. make[5]: *** [prt0.o] Error 1
  32. make[5]: *** Waiting for unfinished jobs....
  33. make[5]: *** [dllprt0.o] Error 1
  34. make[5]: *** [cprt0.o] Error 1
  35. make[5]: *** [gprt0.o] Error 1
  36. make[5]: *** [ucprt0.o] Error 1
  37. make[5]: Leaving directory `/home/mike/fpcupdeluxe/fpc/rtl/linux'
  38. make[4]: *** [linux_all] Error 2
  39. make[4]: Leaving directory `/home/mike/fpcupdeluxe/fpc/rtl'
  40. make[3]: *** [rtl] Error 2
  41. make[3]: Leaving directory `/home/mike/fpcupdeluxe/fpc/compiler'
  42. make[2]: *** [cycle] Error 2
  43. make[2]: Leaving directory `/home/mike/fpcupdeluxe/fpc/compiler'
  44. make[1]: *** [compiler_cycle] Error 2
  45. make[1]: Leaving directory `/home/mike/fpcupdeluxe/fpc'
  46. make: *** [build-stamp.arm-linux] Error 2
  47. make: Leaving directory `/home/mike/fpcupdeluxe/fpc'
  48. fpcupdeluxe: ERROR: FPC: Running cross compiler fpc make all for arm-linux failed with an error code.
  49. fpcupdeluxe: ERROR: Error running BuildModuleCustom for module FPC
  50. fpcupdeluxe: WARNING: FPC cleanup: could not cleanup /home/mike/fpcupdeluxe/fpc/utils/bin
  51. fpcupdeluxe: WARNING: FPC cleanup: could not cleanup /home/mike/fpcupdeluxe/fpc/utils/units/x86_64-linux
  52. fpcupdeluxe: info: Error running fpcup. Technical details: error executing sequence FPCBuildOnly; line: 2, param: FPC
  53. fpcupdeluxe: info: Error running fpcup. Technical details: error executing sequence Only; line: 2, param: FPCBuildOnly
  54.  
  55.  
  56. ERROR: Fpcupdeluxe failed.


Any ideas?


DonAlfredo

  • Hero Member
  • *****
  • Posts: 1122
Re: Fpcupdeluxe
« Reply #163 on: December 02, 2016, 08:59:41 pm »
Will look into it ... but not yet ... couple of busy days ahead ... so stay tuned.

DonAlfredo

  • Hero Member
  • *****
  • Posts: 1122
Re: Fpcupdeluxe
« Reply #164 on: December 03, 2016, 10:54:27 pm »
Added possibility to cross from Linux x86_64 towards ARM, FreeBSD, Aarch64 and i386 !

See: https://github.com/newpascal/fpcupdeluxe/releases/tag/v1.1.0b

Please test.