Recent

Author Topic: BGRABitmap 5.7.1 won't compile on OS X  (Read 15971 times)

circular

  • Hero Member
  • *****
  • Posts: 3045
    • Personal webpage
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #15 on: May 15, 2012, 01:56:30 pm »
Ok. I fixed this by splitting into different procedures for SSE or not SSE. And in fact I realized that simple functions are slower with SSE. Only normalize is faster (much faster). So I deactivated SSE for most simple functions. That does not mean that SSE is not useful in general. To optimize SSE code, it is necessary to align vectors and do specific asm code.

I've updated to svn. Can you give it a try ?
Conscience is the debugger of the mind

Shebuka

  • Sr. Member
  • ****
  • Posts: 422
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #16 on: May 15, 2012, 03:41:59 pm »
One error, in Normalize3D_128_SSE1 there is a
Code: [Select]
     cmp UseSSE3, 0 that generate error
Code: [Select]
/Developer/lazarus/components/bgrabitmap/bgrasse.pas(343,18) Error: Generating PIC, but reference is not PIC-safe

circular

  • Hero Member
  • *****
  • Posts: 3045
    • Personal webpage
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #17 on: May 15, 2012, 07:54:14 pm »
I've fixed this.
Conscience is the debugger of the mind

Shebuka

  • Sr. Member
  • ****
  • Posts: 422
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #18 on: May 16, 2012, 09:49:25 am »
I've fixed this.
Ok, for BGRASSE.
Now it's turn of BGRAColorInt that was also added in rev.388.

Fatal error with no explanation that points to line 55, column 23 (before the '*')
Code: [Select]
result[1] := color.r*oneOver65536;(function ColorInt65536ToColorF)

Here is the console output:
Code: [Select]
16/05/12 09.40.29 [0x0-0x1d21d2].lazarus[59243] [TExternalToolList.Run] CmdLine="/Users/fbk/fpc/compiler/ppc386  -MObjFPC -Scgi -O3 -OoREGVAR -gs -gl -vewnhi -l -Fu/Developer/lazarus/lcl/units/i386-darwin/carbon -Fu/Developer/lazarus/lcl/units/i386-darwin -Fu/Developer/lazarus/components/lazutils/lib/i386-darwin -Fu/Developer/lazarus/packa
16/05/12 09.40.29 [0x0-0x1d21d2].lazarus[59243] ger/units/i386-darwin -Fu/Developer/lazarus/components/bgrabitmap/ -FU/Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/ -dLCL -dLCLcarbon bgrabitmappack.pas" WorkDir="/Developer/lazarus/components/bgrabitmap/"
16/05/12 09.40.29 [0x0-0x1d21d2].lazarus[59243] Hint: Start of reading config fi
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] le /etc/fpc.cfg
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] Hint: End of reading config file /etc/fpc.cfg
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] Free Pascal Compiler version 2.6.0 [2012/01/16] for i386
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] Copyright (c) 1993-2011 by Florian Klaempfl and others
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] Target OS: Darwin for i386
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] Compiling bgrabitmappac{standard input}:588:no instruction mnemonic suffix given and no register operands; can't size instruction
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] {standard input}:600:no instruction mnemonic suffix given and no register operands; can't size instruction
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] {standard input}:612:no instruction mnemonic suffix given and no register operands; can't size instruction
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] {standard input}:624:no instruction mnemonic suffix given and no register operands; can't size instruction
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] {standard input}:835:no instruction mnemonic suffix given and no register operands; can't size instruction
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] {standard input}:855:no instruction mnemonic suffix given and no register operands; can't size instruction
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] {standard input}:875:no instruction mnemonic suffix given and no register operands; can't size instruction
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] {standard input}:895:no instruction mnemonic suffix given and no register operands; can't size instruction
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] k.pas
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] Compiling bgrascene3d.pas
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] Compiling bgracolorint.pas
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgracolorint.s
16/05/12 09.40.30 [0x0-0x1d21d2].lazarus[59243] bgracolorint.pas(55,23) Fatal: There were 1 e

circular

  • Hero Member
  • *****
  • Posts: 3045
    • Personal webpage
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #19 on: May 16, 2012, 08:24:59 pm »
Oh...

What if you replace oneOver65536 by 0.0000152587890625 ?
Conscience is the debugger of the mind

Shebuka

  • Sr. Member
  • ****
  • Posts: 422
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #20 on: May 17, 2012, 10:28:04 am »
Oh...

What if you replace oneOver65536 by 0.0000152587890625 ?
Nothing...

If i comment that lines, then it gives me same error on this
Code: [Select]
result.r := round(colorF[1]*65536);
If i comment also that lines, it will fail with same result, but now fatal error point simply to the end of file...
Code: [Select]
/Developer/lazarus/components/bgrabitmap/bgracolorint.pas(300) Fatal: There were 1 errors compiling module, stopping
p.s. full log
Code: [Select]
17/05/12 10.20.47 [0x0-0x2e02e].lazarus[330] TPkgManager.DoCompilePackage A bgrabitmappack 5.
17/05/12 10.20.47 [0x0-0x2e02e].lazarus[330] 7.1 Flags=[]
17/05/12 10.20.47 [0x0-0x2e02e].lazarus[330] TLazPackageGraph.CheckIfCurPkgOutDirNeedsCompile  Missing state file for bgrabitmappack 5.7.1: /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrabitmappack.compiled
17/05/12 10.20.47 [0x0-0x2e02e].lazarus[330] [TExternalToolList.Run] CmdLine="/Users/fbk/fpc/compiler/ppc386 -B  -MObjFPC -Scgi -O3 -OoREGVAR -gs -gl -vewnhi -l -Fu/Developer/lazarus/lcl/units/i386-darwin/carbon -Fu/Developer/lazarus/lcl/units/i386-darwin -Fu/Developer/lazarus/components/lazutils/lib/i386-darwin -Fu/Developer/lazarus/packager/units/i386-darwin
17/05/12 10.20.48 [0x0-0x2e02e].lazarus[330] -Fu/Developer/lazarus/components/bgrabitmap/ -FU/Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/ -dLCL -dLCLcarbon bgrabitmappack.pas" WorkDir="/Developer/lazarus/components/bgrabitmap/"
17/05/12 10.20.48 [0x0-0x2e02e].lazarus[330] Hint: Start of reading config file /etc/fpc.cfg
17/05/12 10.20.48 [0x0-0x2e02e].lazarus[330] Hint: End of reading config file /etc/fpc.cfg
17/05/12 10.20.48 [0x0-0x2e02e].lazarus[330] Free Pascal Compiler version 2.6.0 [2012/01/16] for i386
17/05/12 10.20.48 [0x0-0x2e02e].lazarus[330] Copyright (c) 1993-2011 by Florian Klaempfl and others
17/05/12 10.20.48 [0x0-0x2e02e].lazarus[330] Target OS: Darwin for i386
17/05/12 10.20.48 [0x0-0x2e02e].lazarus[330] Compiling bgrabitmappack.pas
17/05/12 10.20.48 [0x0-0x2e02e].lazarus[330] Compiling bgraanimatedgif.pas
17/05/12 10.20.48 [0x0-0x2e02e].lazarus[330] Compiling bgrabit
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] map.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgradefaultbitmap.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgrabitmaptypes.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrabitmaptypes.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgracanvas.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgrapen.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgrapath.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgraresample.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgraresample.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrapath.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrapen.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgrapolygon.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgrafillinfo.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrafillinfo.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgrablend.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrablend.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgragradientscanner.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgratransform.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgratransform.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgragradientscanner.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrapolygon.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgrapolygonaliased.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgrasse.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitma
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] p/lib/i386-darwin/2.6.0/bgrasse.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrapolygonaliased.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgracanvas.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgracanvas2d.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgracanvas2d.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgrafilters.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrafilters.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgratext.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] bgratext.pas(453,55) Hint: Function result variable does not seem to be initialized
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgratext.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgratextfx.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Compiling bgraphongtypes.pas
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgraphongtypes.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgratextfx.s
17/05/12 10.20.49 [0x0-0x2e02e].lazarus[330] Hint: Found abstract method: TFPCustomCanvas.DoCopyRect(<TFPCustomCanvas>,LongInt,LongInt,TFPCustomCanvas
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] ,const TRect);
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Hint: Found abstract method: TFPCustomCanvas.DoDraw(<TFPCustomCanvas>,LongInt,LongInt,const TFPCustomImage);
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgradefaultbitmap.s
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrabitmap.s
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] bgraanimatedgif.pas(79,28) Hint: Parameter "Stream" not used
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgraanimatedgif.s
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Compiling bgracompressablebitmap.pas
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgracompressablebitmap.s
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Compiling bgradnetdeserial.pas
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] bgradnetdeserial.pas(157,14) Warning: An inherited method is hidden by "TDotNetDeserialization.ToString:AnsiString;"
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgradnetdeserial.s
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Compiling bgragradients.pas
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgragradients.s
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Compiling bgrapaintnet.pas
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Compiling bgralayers.pas
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] bgralayers.pas(31,14) Warning: An inherited method is hidden by "TBGRACustomLayeredBitmap.ToString:AnsiString;"
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgralayers.s
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Assembling (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgrapaintnet.s
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Compiling bgrascene3d.pas
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Compiling bgracolorint.pas
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] bgracolorint.pas(17,32) Hint: Parameter "colorF" not used
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] bgracolorint.pas(44,10) Warning: Function result does not seem to be set
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] bgracolorint.pas(53,7) Hint: Local const "oneOver65536" is not used
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] bgracolorint.pas(18,32) Hint: Parameter "color" not used
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] bgracolorint.pas(52,10) Warning: Function result does not seem to be set
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] Assembli{standard input}:522:no instruction mnemonic suffix given and no register operands; can't size instruction
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] {standard input}:534:no instruction mnemonic suffix given and no register operands; can't size instruction
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] {standard input}:546:no instruction mnemonic suffix given and no register operands; can't size instruction
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] {standard input}:558:no instruction mnemonic suffix given and no register operands; can't size instruction
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] {standard input}:769:no instruction mnemonic suffix given and no register operands; can't size instruction
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] {standard input}:789:no instruction mnemonic suffix given and no register operands; can't size instruction
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] {standard input}:809:no instruction mnemonic suffix given and no register operands; can't size instruction
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] {standard input}:829:no instruction mnemonic suffix given and no registe
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] r operands; can't size instruction
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] ng (pipe) /Developer/lazarus/components/bgrabitmap/lib/i386-darwin/2.6.0/bgracolorint.s
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] bgracolorint.pas(300) Fatal: There were 1 errors compiling module, stopping
17/05/12 10.20.50 [0x0-0x2e02e].lazarus[330] TExternalToolList.Run Exception: /Developer/lazarus/compo
17/05/12 10.21.45 [0x0-0x2e02e].lazarus[330] nents/bgrabitmap/bgracolorint.pas(300) Fatal: There were 1 errors compiling module, stopping

circular

  • Hero Member
  • *****
  • Posts: 3045
    • Personal webpage
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #21 on: May 17, 2012, 11:59:43 am »
Well I have no idea.

It's rather an FPC bug, isn't it ? Can you put a bug report in FPC bugtracker for this ?
« Last Edit: May 17, 2012, 12:06:19 pm by circular »
Conscience is the debugger of the mind

Shebuka

  • Sr. Member
  • ****
  • Posts: 422
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #22 on: May 17, 2012, 12:26:00 pm »
Is there anyone that managed to compile SVN BGRABitmap on Mac OS X Intel? Are you using some compile switches or different fpc version?


evoshroom

  • Full Member
  • ***
  • Posts: 157
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #23 on: May 22, 2012, 10:23:12 pm »
I decided to try it out today.  5.7.1 and 5.7 both had the same issue mentioned above and I couldn't get anything earlier than that to download from sourceforge.  :(

Shebuka

  • Sr. Member
  • ****
  • Posts: 422
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #24 on: May 23, 2012, 10:07:55 am »
I decided to try it out today.  5.7.1 and 5.7 both had the same issue mentioned above and I couldn't get anything earlier than that to download from sourceforge.  :(
You need to get rev. 387 from svn, it's the last working on mac.

evoshroom

  • Full Member
  • ***
  • Posts: 157
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #25 on: May 26, 2012, 10:31:48 am »
Thanks for the tip.  Checking out Rev 387 now.  Any plans to restore OS X support in the pipeline?

circular

  • Hero Member
  • *****
  • Posts: 3045
    • Personal webpage
Re: BGRABitmap 5.7.1 won't compile on OS X
« Reply #26 on: May 26, 2012, 05:23:43 pm »
I would like to make it work, but I don't understand the problem.  :'(
Conscience is the debugger of the mind