Sign in Join

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

Mailing lists / fpc-pascal / 2012-04

Errors compiling fixes_2.6 on win64: forgot to include dblib for mssqlconn?

6 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

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

Reinier Olislagers

Good morning list,

Running fpcup (64 bit) on my Windows machine gives errors with fpc fixes_2.6 (r21000/21001):

C:/development/fpc/compiler/ppcx64.exe -Ur -Xs -O2 -n -S2 -FuC:/development/fpc/rtl/units/x86_64-win64
-FuC:/development/fpc/packages/dblib
-FuC:/development/fpc/packages/fcl-base/units/x86_64-win64 -FE. -FUC:/development/fpc/packages/fcl-db/units/x86_64-win64 -dx86_64 -dRELEASE mssqlconn.pp
mssqlconn.pp(43,3) Fatal: Can't find unit dblib used by mssqlconn Fatal: Compilation aborted
make.exe[5]: *** [mssqlconn.ppu] Error 1
make.exe[5]: Leaving directory
`C:/development/fpc/packages/fcl-db/src/sqldb/mssql'

Perhaps some of these revisions in trunk could be backported: r20692 | marco | 2012-04-02 13:46:51 +0200 (ma, 02 apr 2012) | 2 lines

* reenable dblib/freetds for win64, after successfull test.

------------------------------------------------------------------------ r20682 | marco | 2012-03-31 22:11:51 +0200 (za, 31 mrt 2012) | 2 lines

* enable parts of sqldb,dblib and fpindexer for Haiku. Patch by Oliver, Mantis
#21618

In any case, I suspect this:
Index: packages/dblib/fpmake.pp
=================================================================== --- packages/dblib/fpmake.pp (revision 21001)
+++ packages/dblib/fpmake.pp (working copy)
@@ -5,7 +5,7 @@
uses fpmkunit;

 Const
-  DBLibOSes         = [linux,freebsd,netbsd,openbsd,win32];
+  DBLibOSes         = [linux,freebsd,netbsd,openbsd,win32,win64,haiku];
 Var
   P : TPackage;

may be sufficient... but simply running make in the top level dir doesn't seem to take it into account... so presumably there is some step needed to regenerate them...

Thanks,
Reinier

Reply by email

Marco van de Voort
to Reinier Olislagers

In our previous episode, Reinier Olislagers said:

Show quoted text 17 lines
Running fpcup (64 bit) on my Windows machine gives errors with fpc fixes_2.6 (r21000/21001): C:/development/fpc/compiler/ppcx64.exe -Ur -Xs -O2 -n -S2 -FuC:/development/fpc/rtl/units/x86_64-win64 -FuC:/development/fpc/packages/dblib -FuC:/development/fpc/packages/fcl-base/units/x86_64-win64 -FE. -FUC:/development/fpc/packages/fcl-db/units/x86_64-win64 -dx86_64 -dRELEASE mssqlconn.pp mssqlconn.pp(43,3) Fatal: Can't find unit dblib used by mssqlconn Fatal: Compilation aborted make.exe[5]: *** [mssqlconn.ppu] Error 1 make.exe[5]: Leaving directory `C:/development/fpc/packages/fcl-db/src/sqldb/mssql' Perhaps some of these revisions in trunk could be backported: r20692 | marco | 2012-04-02 13:46:51 +0200 (ma, 02 apr 2012) | 2 lines

It is hard because 2.6.x uses a different makefile system compared to trunk, which is harder to tune for specific OSes.

fpmake is a pain sometimes, but at least it killed the packages/Makefile.fpc file.

I think dblib is compiled even, but the packages/Makefile.fpc dependencies of fcl-db are complex, and win64 is a special case for some reason (and I have to find out why.

There are three groups
1. linux freebsd openbsd netbsd win32 beos haiku
-> have dependencies on all database client libs.
2. win64 wince solaris darwin iphonesim
-> have dependencies on all database client libs except for paradox (pxlib)
3. (ELSE) Have no dependencies on added dblib only to the first group.

possible solutions:
1. add dblib also to second group
con: also enabled it for the others in that group.
2. move win64 to first group.
con: does pxlib run on win64?
3. refactor everything.

may be sufficient... but simply running make in the top level dir doesn't seem to take it into account... so presumably there is some step needed to regenerate them...

In 2.6.x only two packages are fpmake built (as test case, one of them being fcl-web). Migration of the rest has stalled since fpmake is still not trouble free in trunk.

So merging anything that touches makefiles and dependencies requires manual work when merging from 2.7.x to 2.6.x

Reply by email

Reinier Olislagers
to Marco van de Voort
Marco van de Voort wrote
In our previous episode, Reinier Olislagers said: It is hard because 2.6.x uses a different makefile system compared to trunk, which is harder to tune for specific OSes.

Arrrgh.

I think dblib is compiled even, but the packages/Makefile.fpc dependencies of fcl-db are complex, and win64 is a special case for some reason (and I have to find out why.
Show quoted text 5 lines
I added dblib only to the first group. possible solutions: 1. add dblib also to second group con: also enabled it for the others in that group.

dblib uses FreeTDS which should be available/compile for at least OSX and Solaris.
Win CE, iphonesim: never heard of it working there, but I'm not a FreeTDS guru.
Worst case would be that that dblib fails to compile, blowing up the build again; another risk may be that there actually isn't a FreeTDS library port for that platform.

Lacak2 and Ludo Brands quite probably have a better idea whether the first problem may occur; I'd say the other problem is not that big of a deal ;)

2. move win64 to first group. con: does pxlib run on win64?

Perhaps the easiest way... if one can accept a Paradox connector without the required library being available...

3. refactor everything.
Show quoted text 6 lines
In 2.6.x only two packages are fpmake built (as test case, one of them being fcl-web). Migration of the rest has stalled since fpmake is still not trouble free in trunk. So merging anything that touches makefiles and dependencies requires manual work when merging from 2.7.x to 2.6.x

Ok.

Reply by email

LacaK
to Reinier Olislagers
Show quoted text 13 lines
> I added dblib only to the first group. > > possible solutions: > 1. add dblib also to second group > con: also enabled it for the others in that group. > dblib uses FreeTDS which should be available/compile for at least OSX and Solaris. Win CE, iphonesim: never heard of it working there, but I'm not a FreeTDS guru. Worst case would be that that dblib fails to compile,

Why it should?
dblib.pp will compile on any platform on which FPC will . Another question if there is available port of FreeTDS db-library. If not, then of course user cann't use dblib (in his application) but it does not break building of FPC.
Or I miss something?

blowing up the build again; another risk may be that there actually isn't a FreeTDS library port for that platform.

Yes it may happen, but I do not see this as a real problem.

So simplest way is IMO: 1. add dblib also to second group ;-) L.

Reply by email

Jonas Maebe
to Marco van de Voort: In our previous episode, Reinier Olislagers said: It is hard because 2.6.x uses a…

marcov wrote on Mon, 23 Apr 2012:

Show quoted text 6 lines
In our previous episode, Reinier Olislagers said: > Perhaps some of these revisions in trunk could be backported: > r20692 | marco | 2012-04-02 13:46:51 +0200 (ma, 02 apr 2012) | 2 lines It is hard because 2.6.x uses a different makefile system compared to trunk, which is harder to tune for specific OSes.

Now it is broken for Darwin ("fpc-2.2" = fixes branch in this context):

make -C fcl-json all
/bin/mkdir -p units/powerpc-darwin
/Users/fpc/snapshot/fpc-2.2/compiler/ppcppc -Ur -Xs -O2 -n -S2h -Fu/Users/fpc/snapshot/fpc-2.2/rtl/units/powerpc-darwin -Fu/Users/fpc/snapshot/fpc-2.2/packages/fcl-base/units/powerpc-darwin -Fu/Users/fpc/snapshot/fpc-2.2/packages/univint/units/powerpc-darwin -FE. -FUunits/powerpc-darwin -ap -dpowerpc -dRELEASE src/fpjson.pp fpjson.pp(1905,15) Warning: Function result variable does not seem to initialized
/Users/fpc/snapshot/fpc-2.2/compiler/ppcppc -Ur -Xs -O2 -n -S2h -Fu/Users/fpc/snapshot/fpc-2.2/rtl/units/powerpc-darwin -Fu/Users/fpc/snapshot/fpc-2.2/packages/fcl-base/units/powerpc-darwin -Fu/Users/fpc/snapshot/fpc-2.2/packages/univint/units/powerpc-darwin -FE. -FUunits/powerpc-darwin -ap -dpowerpc -dRELEASE src/jsonscanner.pp /Users/fpc/snapshot/fpc-2.2/compiler/ppcppc -Ur -Xs -O2 -n -S2h -Fu/Users/fpc/snapshot/fpc-2.2/rtl/units/powerpc-darwin -Fu/Users/fpc/snapshot/fpc-2.2/packages/fcl-base/units/powerpc-darwin -Fu/Users/fpc/snapshot/fpc-2.2/packages/univint/units/powerpc-darwin -FE. -FUunits/powerpc-darwin -ap -dpowerpc -dRELEASE src/jsonparser.pp /Users/fpc/snapshot/fpc-2.2/compiler/ppcppc -Ur -Xs -O2 -n -S2h -Fu/Users/fpc/snapshot/fpc-2.2/rtl/units/powerpc-darwin -Fu/Users/fpc/snapshot/fpc-2.2/packages/fcl-base/units/powerpc-darwin -Fu/Users/fpc/snapshot/fpc-2.2/packages/univint/units/powerpc-darwin -FE. -FUunits/powerpc-darwin -ap -dpowerpc -dRELEASE src/jsonconf.pp /Users/fpc/snapshot/fpc-2.2/compiler/ppcppc -Ur -Xs -O2 -n -S2h -Fu/Users/fpc/snapshot/fpc-2.2/rtl/units/powerpc-darwin -Fu/Users/fpc/snapshot/fpc-2.2/packages/fcl-base/units/powerpc-darwin -Fu/Users/fpc/snapshot/fpc-2.2/packages/univint/units/powerpc-darwin -FE. -FUunits/powerpc-darwin -ap -dpowerpc -dRELEASE src/fpjsonrtti.pp make[2]: *** No rule to make target `dblib_all', needed by `fcl-db_all'. Stop.
make[1]: *** [packages_all] Error 2
make: *** [build-stamp.powerpc-darwin] Error 2

Jonas

Reply by email

Marco van de Voort
to Jonas Maebe

In our previous episode, Jonas Maebe said:

> It is hard because 2.6.x uses a different makefile system compared to trunk, > which is harder to tune for specific OSes. Now it is broken for Darwin ("fpc-2.2" = fixes branch in this context):

Fixed I hope.

Reply by email