Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2010-12

Lazarus and SPARC Solaris

23 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Mark Morgan Lloyd

I've now got a Solaris 10 SPARC system set up here, limited disc space etc. and not (yet) on a public IP address.

I've got FPC installed and self-building subject to a couple of minor issues (0018271) and am now having a bash at building Lazarus. If I do a gmake clean I get to here

Compiling lconvencoding.pas
Fatal: Can't find unit iconvenc used by LConvEncoding Fatal: Compilation aborted
gmake[1]: *** [alllclunits.ppu] Error 1
gmake[1]: Leaving directory `/export/home/share/lazarus-trunk/lcl' gmake: *** [lcl] Error 2

which is presumably caused by

{$IFNDEF DisableIconv}
{$IFDEF UNIX}{$IF not defined(VER2_2_0) and not
defined(VER2_2_2)}{$DEFINE HasIconvEnc}{$ENDIF}{$ENDIF}
{$ENDIF}

uses
SysUtils, Classes, dos, LCLProc

   {$IFDEF HasIconvEnc},iconvenc{$ENDIF};

Where do I go next? :-)

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Marco van de Voort
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote 5 lines
uses SysUtils, Classes, dos, LCLProc {$IFDEF HasIconvEnc},iconvenc{$ENDIF}; Where do I go next? :-)

This is a FPC issue not lazarus. FPC doesn't compile the iconvenc package ( fpc/packages/iconvenc ) not for solaris.

If you can confirm that it works, I'll enable it.

There are more such packages, see the "dirs=" statements in fpc/packages/Makefile.fpc. (to the dirs_solaris line "iconvenc" should be added).

Probably you want to make a difference between the solaris line and the FreeBSD (this avoids some inheritly Linux specific packages) line there, and test which packages work with solaris.

Reply by email

Mark Morgan Lloyd
to Juha Manninen: Mark Morgan Lloyd kirjoitti maanantai 20 joulukuu 2010 11:39:22: It is a FPC version…
Juha Manninen wrote
Mark Morgan Lloyd kirjoitti maanantai 20 joulukuu 2010 11:39:22: > Where do I go next? :-) It is a FPC version mismatch. What version you have?

2.4.2 plus Lazarus from SVN on Saturday, which compiles OK on other platforms.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Mark Morgan Lloyd
to Marco van de Voort: This is a FPC issue not lazarus. FPC doesn't compile the iconvenc package (…
Marco van de Voort wrote 11 lines
On Mon, Dec 20, 2010 at 09:39:22AM +0000, Mark Morgan Lloyd wrote: > uses > SysUtils, Classes, dos, LCLProc > {$IFDEF HasIconvEnc},iconvenc{$ENDIF}; > > Where do I go next? :-) This is a FPC issue not lazarus. FPC doesn't compile the iconvenc package ( fpc/packages/iconvenc ) not for solaris. If you can confirm that it works, I'll enable it.

OK, I'll get onto it later. In this context what constitutes working- that it compiles without error or is there a functional test?

Show quoted text 7 lines
There are more such packages, see the "dirs=" statements in fpc/packages/Makefile.fpc. (to the dirs_solaris line "iconvenc" should be added). Probably you want to make a difference between the solaris line and the FreeBSD (this avoids some inheritly Linux specific packages) line there, and test which packages work with solaris.

Noted. I don't have any immediate plans to fire up any BSDs.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Marco van de Voort
to Mark Morgan Lloyd: OK, I'll get onto it later. In this context what constitutes working- that it compiles…
Mark Morgan Lloyd wrote 5 lines
> > If you can confirm that it works, I'll enable it. OK, I'll get onto it later. In this context what constitutes working- that it compiles without error or is there a functional test?

Compile and link (the iconv lib is "special" on some *nixes), and there is a test from Ido in examples, testing with some Hebrew iirc.

Show quoted text 5 lines
> Probably you want to make a difference between the solaris line and the > FreeBSD (this avoids some inheritly Linux specific packages) line there, and > test which packages work with solaris. Noted. I don't have any immediate plans to fire up any BSDs.

I meant that the packages that FreeBSD uses is roughly equal to "general unix", as there are no BSD specific packages in packages/

The same line from "linux" contains many linux specific packages.

Reply by email

Mark Morgan Lloyd
to Marco van de Voort
Marco van de Voort wrote 11 lines
On Mon, Dec 20, 2010 at 01:22:19PM +0000, Mark Morgan Lloyd wrote: >> If you can confirm that it works, I'll enable it. > OK, I'll get onto it later. In this context what constitutes working- > that it compiles without error or is there a functional test? Compile and link (the iconv lib is "special" on some *nixes), and there is a test from Ido in examples, testing with some Hebrew iirc. >> Probably you want to make a difference between the solaris line and the >> FreeBSD (this avoids some inheritly Linux specific packages) line there, and >> test which packages work with solaris.

The packages in Solaris appear to be a strict subset of those in FreeBSD, missing aspell gdbint gmp graph gtk2 iconvenc librsvg libxml pxlib sdl users.

Is this best discussed here, in one of the FPC lists, or as a bug report (and in that case against which project)?

Show quoted text 6 lines
> Noted. I don't have any immediate plans to fire up any BSDs. I meant that the packages that FreeBSD uses is roughly equal to "general unix", as there are no BSD specific packages in packages/ The same line from "linux" contains many linux specific packages.

That was slightly tongue in cheek. I've got limited space in my workroom (plus limited UPS capacity etc.) and I'd find it far more difficult justifying to management putting time into BSD than into Solaris.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Mark Morgan Lloyd
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote 18 lines
Marco van de Voort wrote: > On Mon, Dec 20, 2010 at 01:22:19PM +0000, Mark Morgan Lloyd wrote: >>> If you can confirm that it works, I'll enable it. >> OK, I'll get onto it later. In this context what constitutes working- >> that it compiles without error or is there a functional test? > > Compile and link (the iconv lib is "special" on some *nixes), and > there is a > test from Ido in examples, testing with some Hebrew iirc. > >>> Probably you want to make a difference between the solaris line and the >>> FreeBSD (this avoids some inheritly Linux specific packages) line >>> there, and >>> test which packages work with solaris. The packages in Solaris appear to be a strict subset of those in FreeBSD, missing aspell gdbint gmp graph gtk2 iconvenc librsvg libxml pxlib sdl users.

iconvenc compiles and the test runs although the output is Greek to me. This is the only one I've tried so far.

Building Lazarus with gmake LCL_PLATFORM=gtk all (i.e. not yet trying bigide) runs most of the way through, until it gets to

gmake -C ide ide
gmake[1]: Entering directory `/export/home/share/lazarus-trunk/ide' /usr/bin/mkdir -p ../units/sparc-solaris
./tools/svn2revisioninc .. revision.inc
gmake[1]: execvp: ../tools/svn2revisioninc: Invalid argument gmake[1]: *** [revisioninc] Error 127
gmake[1]: Leaving directory `/export/home/share/lazarus-trunk/ide' gmake: *** [ide] Error 2

The "Invalid argument" message appears to be coming from svn2revisioninc itself, running it with -v gives me the same message with no additional information and I haven't yet started trying to work through what's happening.

The directory tree I'm compiling contains .svn directories etc. but I've not yet tried to install svn on Solaris 10, the available binary appears to want library patches which I'm not very enthusiastic about at this stage- I'd much rather be testing on a virgin system. However I think this is a red herring since if I rename ./.svn I still get the same error.

Anybody got any suggestions?

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Marco van de Voort
to Mark Morgan Lloyd: The packages in Solaris appear to be a strict subset of those in FreeBSD, missing aspell…
Mark Morgan Lloyd wrote 7 lines
>>> Probably you want to make a difference between the solaris line and the >>> FreeBSD (this avoids some inheritly Linux specific packages) line there, and >>> test which packages work with solaris. The packages in Solaris appear to be a strict subset of those in FreeBSD, missing aspell gdbint gmp graph gtk2 iconvenc librsvg libxml pxlib sdl users.

So those are the packages to test :-)

Is this best discussed here, in one of the FPC lists, or as a bug report (and in that case against which project)?

I don't mind. Here is fine, if not too long (since iconvenc missing for lazarus is the direct event that triggered this), otherwise fpc-devel would be most appopriate.

Show quoted text 10 lines
>> Noted. I don't have any immediate plans to fire up any BSDs. > > I meant that the packages that FreeBSD uses is roughly equal to > "general unix", as there are no BSD specific packages in packages/ > > The same line from "linux" contains many linux specific packages. That was slightly tongue in cheek. I've got limited space in my workroom (plus limited UPS capacity etc.) and I'd find it far more difficult justifying to management putting time into BSD than into Solaris.

I don't care. The point is that looking at what FreeBSD implements is roughly the subset implemented on all *nixes. The reason is that because FreeBSD was the original model for the *nix rtl, but later many existing linux specific calls, units and packages wree added.

So anything that FreeBSD implements that Solaris does (like above packages) is worth looking into because:

1) they are at least portable enough between FreeBSD and Linux
2) they are not Linux specific, since also supported on FreeBSD
3) there are no FreeBSD specific packages.

There are gray areas like svgalib though.

Reply by email

Mark Morgan Lloyd
to Mark Morgan Lloyd: iconvenc compiles and the test runs although the output is Greek to me. This is the only…
Mark Morgan Lloyd wrote 27 lines
iconvenc compiles and the test runs although the output is Greek to me. This is the only one I've tried so far. Building Lazarus with gmake LCL_PLATFORM=gtk all (i.e. not yet trying bigide) runs most of the way through, until it gets to gmake -C ide ide gmake[1]: Entering directory `/export/home/share/lazarus-trunk/ide' /usr/bin/mkdir -p ../units/sparc-solaris ./tools/svn2revisioninc .. revision.inc gmake[1]: execvp: ../tools/svn2revisioninc: Invalid argument gmake[1]: *** [revisioninc] Error 127 gmake[1]: Leaving directory `/export/home/share/lazarus-trunk/ide' gmake: *** [ide] Error 2 The "Invalid argument" message appears to be coming from svn2revisioninc itself, running it with -v gives me the same message with no additional information and I haven't yet started trying to work through what's happening. The directory tree I'm compiling contains .svn directories etc. but I've not yet tried to install svn on Solaris 10, the available binary appears to want library patches which I'm not very enthusiastic about at this stage- I'd much rather be testing on a virgin system. However I think this is a red herring since if I rename ./.svn I still get the same error. Anybody got any suggestions?

Skip that one for the moment- I can get past using gmake LCL_PLATFORM=gtk USESVN2REVISIONINC=0 all

Now I'm stuck at this point which looks a bit more tricky:

Compiling lazarus.pp
Fatal: Can't find unit clocale used by Lazarus
Fatal: Compilation aborted
gmake[2]: *** [lazarus] Error 1
gmake[2]: Leaving directory `/export/home/share/lazarus-trunk/ide' gmake[1]: *** [ide] Error 2
gmake[1]: Leaving directory `/export/home/share/lazarus-trunk/ide' gmake: *** [ide] Error 2

I can see this in lazarus.pp:

   {$IF defined(Unix) and not defined(VER2_2_0) and not defined(VER2_2_2)}
   clocale,
   {$ENDIF}

I can see clocale RTL files:

./fpcsrc/rtl/unix/clocale.pp
./fpcsrc/rtl/bsd/clocale.inc
./fpcdocs/clocale.xml

I presume that I need to do something like finding why clocale.pp isn't being compiled for Solaris (i.e. Makefile.fpc somewhere), copy bsd/clocale.inc to solaris/clocale.inc, and modify clocale.pp to include it if being compiled for Solaris- at present the options appear to be BSD or Linux.

Could somebody please confirm or tell me that I'm heading in the wrong direction.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Marco van de Voort
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote 9 lines
I can see clocale RTL files: ./fpcsrc/rtl/unix/clocale.pp ./fpcsrc/rtl/bsd/clocale.inc ./fpcdocs/clocale.xml I presume that I need to do something like finding why clocale.pp isn't being compiled for Solaris (i.e. Makefile.fpc somewhere),

Correct. And maybe add to the conditionals to include it.

copy bsd/clocale.inc to solaris/clocale.inc, and modify clocale.pp to include it if being compiled for Solaris- at present the options appear to be BSD or Linux.

Yes. Note that clocale.pp includes the linux implementation. It might be closer to Solaris than BSD.

Could somebody please confirm or tell me that I'm heading in the wrong direction.

Fine. Don't bother too much about the makefile shenigans. Just hackety get it running/updated to confirm it works fine on Solairs.

Then put a patch (adding solaris/clocale.inc and a patch for unix/clocale.pp to include the solaris .inc) in the bugtracker.

I'll do the rest.

Note: I can enable packages/ for solaris too. But I would like to do that as much as possible in one mutation/commit. That makes merging back to 2.4.x easier.

Reply by email

Mark Morgan Lloyd
to Marco van de Voort
Marco van de Voort wrote 33 lines
On Tue, Dec 21, 2010 at 07:23:58PM +0000, Mark Morgan Lloyd wrote: > I can see clocale RTL files: > > ./fpcsrc/rtl/unix/clocale.pp > ./fpcsrc/rtl/bsd/clocale.inc > ./fpcdocs/clocale.xml > > I presume that I need to do something like finding why clocale.pp isn't > being compiled for Solaris (i.e. Makefile.fpc somewhere), Correct. And maybe add to the conditionals to include it. > copy bsd/clocale.inc to solaris/clocale.inc, and modify clocale.pp to > include it if being compiled for Solaris- at present the options appear to > be BSD or Linux. Yes. Note that clocale.pp includes the linux implementation. It might be closer to Solaris than BSD. > Could somebody please confirm or tell me that I'm heading in the wrong > direction. Fine. Don't bother too much about the makefile shenigans. Just hackety get it running/updated to confirm it works fine on Solairs. Then put a patch (adding solaris/clocale.inc and a patch for unix/clocale.pp to include the solaris .inc) in the bugtracker. I'll do the rest. Note: I can enable packages/ for solaris too. But I would like to do that as much as possible in one mutation/commit. That makes merging back to 2.4.x easier.

Working on it. What I'm hoping to do is get a basic lazarus compiled, then bigide, then check over the remaining packages. At that point I can raise a categorised report, if we're very lucky everything will work and the solaris package list can be set to the same as BSD (at present the order is different).

I'm not confident I can get SVN running on this system- any guidance about recording changes as diffs etc. would be appreciated.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Felipe Monteiro de Carvalho
to Mark Morgan Lloyd

On Wed, Dec 22, 2010 at 6:28 AM, Mark Morgan Lloyd > I'm not confident I can get SVN running on this system- any guidance about

recording changes as diffs etc. would be appreciated.

There is a command line tool called diff

You can copy the changed files to another computer and diff them against the original from svn. Each file would produce one diff file.

Felipe Monteiro de Carvalho

Reply by email

Mark Morgan Lloyd
to Felipe Monteiro de Carvalho: On Wed, Dec 22, 2010 at 6:28 AM, Mark Morgan Lloyd > I'm not confident I can get SVN…
Felipe Monteiro de Carvalho wrote 8 lines
On Wed, Dec 22, 2010 at 6:28 AM, Mark Morgan Lloyd > I'm not confident I can get SVN running on this system- any guidance about > recording changes as diffs etc. would be appreciated. There is a command line tool called diff You can copy the changed files to another computer and diff them against the original from svn. Each file would produce one diff file.

I know. However there are various conventions- unified and so on- and different projects have different preferred ways of working.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Marco van de Voort
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote
> against the original from svn. Each file would produce one diff file. I know. However there are various conventions- unified and so on- and different projects have different preferred ways of working.

99% of the world, including SVN and FPC use unified.

gnu diff does unified when -u is passed.

Reply by email

Mark Morgan Lloyd
to Marco van de Voort
Marco van de Voort wrote 8 lines
On Wed, Dec 22, 2010 at 11:00:13AM +0000, Mark Morgan Lloyd wrote: >> against the original from svn. Each file would produce one diff file. > I know. However there are various conventions- unified and so on- and > different projects have different preferred ways of working. 99% of the world, including SVN and FPC use unified. gnu diff does unified when -u is passed.

Yes, just being cautious in case I cause unnecessary work.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Marco van de Voort
to Mark Morgan Lloyd: Working on it. What I'm hoping to do is get a basic lazarus compiled, then bigide, then…
Mark Morgan Lloyd wrote 8 lines
Working on it. What I'm hoping to do is get a basic lazarus compiled, then bigide, then check over the remaining packages. At that point I can raise a categorised report, if we're very lucky everything will work and the solaris package list can be set to the same as BSD (at present the order is different). I'm not confident I can get SVN running on this system- any guidance about recording changes as diffs etc. would be appreciated.

- source unified diffs
- makefile changes: just explain in words what needs to happen (add pkg X for solaris).

Makefile files are problematic with merging, and I'll choose the way that is the easiest to merge (and the result will be the same to the letter)

Reply by email

Mark Morgan Lloyd
to Marco van de Voort
Marco van de Voort wrote 16 lines
On Wed, Dec 22, 2010 at 08:28:28AM +0000, Mark Morgan Lloyd wrote: > Working on it. What I'm hoping to do is get a basic lazarus compiled, > then bigide, then check over the remaining packages. At that point I can > raise a categorised report, if we're very lucky everything will work and > the solaris package list can be set to the same as BSD (at present the > order is different). > > I'm not confident I can get SVN running on this system- any guidance > about recording changes as diffs etc. would be appreciated. - source unified diffs - makefile changes: just explain in words what needs to happen (add pkg X for solaris). Makefile files are problematic with merging, and I'll choose the way that is the easiest to merge (and the result will be the same to the letter)

Will do. Noted your comment about some things possibly being nearer Linux than BSD, but for the moment I'm focusing on the fact that Solaris is a BSD derivative and any compatibility with Linux is a comparatively recent graft. Also I'm using SUNOS in conditionals rather than solaris on the basis that uname reports a SunOS rather than Solaris version number (i.e. 5.10 rather than 10 etc.), existing sources appear to be about evenly split on that.

Happy Christmas and/or Midwinter Solstice everybody.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Mark Morgan Lloyd
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote 28 lines
Marco van de Voort wrote: > On Wed, Dec 22, 2010 at 08:28:28AM +0000, Mark Morgan Lloyd wrote: >> Working on it. What I'm hoping to do is get a basic lazarus compiled, >> then bigide, then check over the remaining packages. At that point I >> can raise a categorised report, if we're very lucky everything will >> work and the solaris package list can be set to the same as BSD (at >> present the order is different). >> >> I'm not confident I can get SVN running on this system- any guidance >> about recording changes as diffs etc. would be appreciated. > > - source unified diffs > - makefile changes: just explain in words what needs to happen (add pkg X > for solaris). > > Makefile files are problematic with merging, and I'll choose the way > that is > the easiest to merge (and the result will be the same to the letter) Will do. Noted your comment about some things possibly being nearer Linux than BSD, but for the moment I'm focusing on the fact that Solaris is a BSD derivative and any compatibility with Linux is a comparatively recent graft. Also I'm using SUNOS in conditionals rather than solaris on the basis that uname reports a SunOS rather than Solaris version number (i.e. 5.10 rather than 10 etc.), existing sources appear to be about evenly split on that. Happy Christmas and/or Midwinter Solstice everybody.

Lazarus ground to a halt after a week with a linking error (gld: cannot find -lgdk_pixbuf), I suspect that Solaris only has this for gtk v2.

I'm going to wrap up some year-end maintenance work and then get Solaris onto a faster system before continuing. I'll be back.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Felipe Monteiro de Carvalho
to Mark Morgan Lloyd

On Thu, Dec 30, 2010 at 9:21 PM, Mark Morgan Lloyd > Lazarus ground to a halt after a week with a linking error (gld: cannot find

-lgdk_pixbuf), I suspect that Solaris only has this for gtk v2.

This is a FAQ

http://wiki.lazarus.freepascal.org/Lazarus_Faq#I_receive_an_error_during_the_linking_that_states_.2Fusr.2Fbin.2Fld_can.27t_find_-l.3Csome_lib.3E http://wiki.lazarus.freepascal.org/Linker_message:_cannot_find_-l

Felipe Monteiro de Carvalho

Reply by email

Mark Morgan Lloyd
to Felipe Monteiro de Carvalho
Felipe Monteiro de Carvalho wrote 5 lines
On Thu, Dec 30, 2010 at 9:21 PM, Mark Morgan Lloyd > Lazarus ground to a halt after a week with a linking error (gld: cannot find > -lgdk_pixbuf), I suspect that Solaris only has this for gtk v2. This is a FAQ

No it's not, I'm not asking a question.

> I suspect that Solaris only has this for gtk v2. > > I'm going to wrap up some year-end maintenance work and then get > Solaris onto a faster system before continuing. I'll be back.
Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Mark Morgan Lloyd
to Mark Morgan Lloyd: Lazarus ground to a halt after a week with a linking error (gld: cannot find…
Mark Morgan Lloyd wrote 5 lines
Lazarus ground to a halt after a week with a linking error (gld: cannot find -lgdk_pixbuf), I suspect that Solaris only has this for gtk v2. I'm going to wrap up some year-end maintenance work and then get Solaris onto a faster system before continuing. I'll be back.

Unfortunately I don't think it's going to be possible to get Lazarus onto an *unmodified* Solaris 10, and I don't know the situation with later versions. Building for gtk fails because gdk_pixbuf v1 isn't shipped with the OS, and building for gtk2 fails because libcairo isn't shipped.

libcairo is available from http://www.sunfreeware.com/ but lists as a prerequisite a version of gcc later than is shipped with Solaris 10. Qt 3.3.4 is available, but I presume this is too old to be useful and again it has a list of prerequisites. I'd much rather not get into the game of trying to compile libraries from scratch- perhaps whoever was asking on StackOverflow would like to help out.

Graeme: what is the position building Lazarus using makefiles with fpGUI? Is this worth trying?

I'm going to see how many of the FPC packages I can compile, but testing will be (extremely) limited because of missing libraries (e.g. gtk2 examples assume cairo is available). Perhaps when some of the dust has settled from Oracle's acquisition of Sun I'll try OpenSolaris, but at present the status of this appears unclear.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email