Sign in Join

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

Mailing lists / fpc-pascal / 2012-09

FPC x86+x64 win trunk failing to build (using fpcup): 2 different errors

9 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

Does anybody see similar messages:
1. X86 error
Compiling .\fcl-web\src\base\fphtml.pp
The installer encountered the following error:
External command "C:/development/fpctrunk/compiler/ppc386.exe -Twin32 -FUfcl-web\units\i386-win32\
-FuC:\development\fpctrunk\rtl\units\i386-win32\
-FuC:\development\fpctrunk\packages\fcl-base\units\i386-win32\ -FuC:\development\fpctrunk\packages\fcl-db\units\i386-win32\ -FuC:\development\fpctrunk\packages\fcl-xml\units\i386-win32\ -FuC:\development\fpctrunk\packages\ibase\units\i386-win32\ -FuC:\development\fpctrunk\packages\mysql\units\i386-win32\ -FuC:\development\fpctrunk\packages\odbc\units\i386-win32\ -FuC:\development\fpctrunk\packages\oracle\units\i386-win32\ -FuC:\development\fpctrunk\packages\postgres\units\i386-win32\ -Fu C:\development\fpctrunk\packages\sqlite\units\i386-win32\ -FuC:\development\fpctrunk\packages\dblib\units\i386-win32\ -FuC:\development\fpctrunk\packages\pxlib\units\i386-win32\ -FuC:\development\fpctrunk\packages\fcl-json\units\i386-win32\ -FuC:\development\fpctrunk\packages\fcl-net\units\i386-win32\ -FuC:\development\fpctrunk\packages\fcl-passrc\units\i386-win32\ -FuC:\development\fpctrunk\packages\fcl-process\units\i386-win32\ -FuC:\development\fpctrunk\packages\fastcgi\units\i386-win32\ -FuC:\development\fpctrunk\packages\httpd22\units\i386-win32\ -Fufcl-web\src/base -Fufcl-web\src/webdata -Fufcl-web\src/jsonrpc -Ur -Xs -O2 -n -FuC:/development/fpctrunk/rtl/units/i386-win32 -gw -gl -di386 -dRELEASE -XX -CX
-viq fcl-web\BuildUnit_fcl_web.pp" failed with exit code 1. Console output: Target OS: Win32 for i386
Compiling fcl-web\BuildUnit_fcl_web.pp
Compiling .\fcl-web\src\base\cgiapp.pp
Writing Resource String Table file: cgiapp.rst
Compiling .\fcl-web\src\base\httpdefs.pp
Writing Resource String Table file: httpdefs.rst
Compiling .\fcl-web\src\base\custcgi.pp
Compiling .\fcl-web\src\base\custweb.pp
Compiling .\fcl-web\src\base\fphttp.pp
Writing Resource String Table file: fphttp.rst
Writing Resource String Table file: custweb.rst
Writing Resource String Table file: custcgi.rst
Compiling .\fcl-web\src\base\ezcgi.pp
Compiling .\fcl-web\src\base\fpcgi.pp
Compiling .\fcl-web\src\base\fphtml.pp
fphtml.pp(21,66) Fatal: Can't find unit DB used by fphtml Fatal: Compilation aborted

make.exe[2]: *** [smart] Error 1
make.exe[2]: Leaving directory `C:/development/fpctrunk/packages' make.exe[1]: *** [packages_smart] Error 2
make.exe[1]: Leaving directory `C:/development/fpctrunk' C:\development\fpcbootstrap\make.exe: *** [build-stamp.i386-win32] Error 2 C:\development\fpcbootstrap\make.exe: Leaving directory `C:/development/fpctrunk

2. X64 error (different) - removing .ppu files does not help: Start compiling package fppkg-util for target x86_64-win64. Compiling pkglnet.pp
The installer encountered the following error:
External command "C:/development/fpctrunk/compiler/ppcx64.exe -Twin64 -FUunits\x86_64-win64\
-FuC:\development\fpctrunk\rtl\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fcl-base\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fcl-xml\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fcl-process\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fcl-net\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fcl-passrc\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\paszlib\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\hash\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fppkg\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fpmkunit\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fcl-web\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fcl-db\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\ibase\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\mysql\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\odbc\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\sqlite\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\dblib\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fcl-json\units\x86_64-win64\ -FuC:\development\fpctrunk\packages\fastcgi\units\x86_ 64-win64\
-FuC:\development\fpctrunk\packages\httpd22\units\x86_64-win64\ -Filnet/sys -Ur -Xs -O2 -n
-FuC:/development/fpctrunk/rtl/units/x86_64-win64
-FuC:/development/fpctrunk/packages/paszlib/units/x86_64-win64 -FuC:/development/fpctrunk
/packages/fcl-process/units/x86_64-win64
-FuC:/development/fpctrunk/packages/hash/units/x86_64-win64 -FuC:/development/fpctrunk/packages/fpmkunit/units/x86_64-win64 -gw -gl -dx86_64 -dRELEASE -viq pkglnet.pp" failed with exit code 1. Console output: Target OS: Win64 for x64
Compiling pkglnet.pp
PPU Loading
C:\development\fpctrunk\packages\fppkg\units\x86_64-win64\pkgglobals .ppu
PPU Source: pkgglobals.pp not available
Recompiling pkgglobals, checksum changed for fpmkunit Fatal: Can't find unit pkgglobals used by pkghandler Fatal: Compilation aborted

Thanks,
Reinier

Reply by email

Jonas Maebe
to Reinier Olislagers
Reinier Olislagers wrote 18 lines
-FuC:\development\fpctrunk\packages\httpd22\units\x86_64-win64\ -Filnet/sys -Ur -Xs -O2 -n -FuC:/development/fpctrunk/rtl/units/x86_64-win64 -FuC:/development/fpctrunk/packages/paszlib/units/x86_64-win64 -FuC:/development/fpctrunk /packages/fcl-process/units/x86_64-win64 -FuC:/development/fpctrunk/packages/hash/units/x86_64-win64 -FuC:/development/fpctrunk/packages/fpmkunit/units/x86_64-win64 -gw -gl -dx86_64 -dRELEASE -viq pkglnet.pp" failed with exit code 1. Console output: Target OS: Win64 for x64 Compiling pkglnet.pp PPU Loading C:\development\fpctrunk\packages\fppkg\units\x86_64-win64\pkgglobals .ppu PPU Source: pkgglobals.pp not available Recompiling pkgglobals, checksum changed for fpmkunit Fatal: Can't find unit pkgglobals used by pkghandler Fatal: Compilation aborted

It's a bug in the fpmake-related cleaning logic that doesn't delete all units (even when using make distclean). You have to manually delete all units/$fpctarget directories under packages to work around it.

Jonas

Reply by email

Reinier Olislagers
to Jonas Maebe
Jonas Maebe wrote 23 lines
On 20 Sep 2012, at 16:50, Reinier Olislagers wrote: > -FuC:\development\fpctrunk\packages\httpd22\units\x86_64-win64\ > -Filnet/sys -Ur -Xs -O2 -n > -FuC:/development/fpctrunk/rtl/units/x86_64-win64 > -FuC:/development/fpctrunk/packages/paszlib/units/x86_64-win64 > -FuC:/development/fpctrunk > /packages/fcl-process/units/x86_64-win64 > -FuC:/development/fpctrunk/packages/hash/units/x86_64-win64 > -FuC:/development/fpctrunk/packages/fpmkunit/units/x86_64-win64 -gw -gl > -dx86_64 -dRELEASE -viq pkglnet.pp" failed with exit code 1. Console output: > Target OS: Win64 for x64 > Compiling pkglnet.pp > PPU Loading > C:\development\fpctrunk\packages\fppkg\units\x86_64-win64\pkgglobals > .ppu > PPU Source: pkgglobals.pp not available > Recompiling pkgglobals, checksum changed for fpmkunit > Fatal: Can't find unit pkgglobals used by pkghandler > Fatal: Compilation aborted It's a bug in the fpmake-related cleaning logic that doesn't delete all units (even when using make distclean). You have to manually delete all units/$fpctarget directories under packages to work around it.

Ok, thanks Jonas... that should be doable to fix in fpcup....

Would looking into the actual fpmake bug make sense (i.e. is it doable for mere mortals like me?) Where would I look?

Thanks,
Reinier

Reply by email

Jonas Maebe
to Reinier Olislagers
Reinier Olislagers wrote
Would looking into the actual fpmake bug make sense (i.e. is it doable for mere mortals like me?) Where would I look?

It's probably related to how the makefiles clean the packages since fpmake was introduced. Pierre posted a not really clean workaround recently to the core list, see below (I don't think the patch will apply as is though, because the formatting was changed by the mail client).

Jonas

***

E:\pas\trunk\fpcsrc\packages>svn diff Makefile.fpc Index: Makefile.fpc
=================================================================== --- Makefile.fpc (revision 22381)
+++ Makefile.fpc (working copy)
@@ -13,11 +13,11 @@
fpcdir=..

[prerules]
-# Translate INSTALL_UNITDIR to fpmake's --unitinstalldir parameter +# Translate INSTALL_UNITDIR to fpmake's --unitinstalldir parameter ifdef INSTALL_UNITDIR
FPMAKE_INSTALL_OPT+=--unitinstalldir=$(INSTALL_UNITDIR) endif
-# Translate OS_TARGET and CPU_TARGET to fpmake's --os and --cpu parameters +# Translate OS_TARGET and CPU_TARGET to fpmake's --os and --cpu parameters ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
endif
@@ -63,7 +63,7 @@
fpmake: fpmake.pp fpmkunit_bootstrap
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT)
all: fpmake
- $(LOCALFPMAKE) compile $(FPMAKE_OPT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT)
smart: fpmake
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX release: fpmake
@@ -79,17 +79,29 @@
clean:
$(FPMAKE_BIN_CLEAN) clean $(FPMAKE_OPT)
endif
+
+
+ifeq ($(TARGET_DIRS),)
+TARGET_DIRS=$(subst /Makefile, ,$(wildcard */Makefile)) +endif
+
+%_distclean:
+ $(ECHO) calling distclean in $*
+ $(MAKE) -C $* distclean
+
# In case of a distclean, perform an 'old'-style distclean. This to avoid problems
# when the package is compiled using fpcmake prior to running this clean using fpmake
# It does not work well, though, since the sub-directories are not cleaned at all.
ifeq ($(FPMAKE_BIN_CLEAN),)
-distclean: $(addsuffix _distclean,$(TARGET_DIRS)) fpc_cleanall +distclean: fpc_cleanall $(addsuffix _distclean,$(TARGET_DIRS))
+ @$(ECHO) Subdirs are $(TARGET_DIRS)
+
else
distclean:
ifdef inUnix
- { $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT); if [ $$? != "0" ]; then { echo Something wrong with fpmake exect
able. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; };
fi; }
+ { $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT); if [ $$? != "0" ]; then { echo Something wrong with fpmake execta
ble. Remove the executable and call make recursively to recover.; $(DEL) $(FPMAKE_BIN_CLEAN); $(MAKE) fpc_cleanall; }; f
i; }
else
- $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT)
+ $(FPMAKE_BIN_CLEAN) distclean $(FPMAKE_OPT) endif
-$(DEL) $(LOCALFPMAKE)
endif

Reply by email

Reinier Olislagers
to Jonas Maebe
Jonas Maebe wrote 7 lines
On 20 Sep 2012, at 17:18, Reinier Olislagers wrote: > Would looking into the actual fpmake bug make sense (i.e. is it doable > for mere mortals like me?) Where would I look? It's probably related to how the makefiles clean the packages since fpmake was introduced. Pierre posted a not really clean workaround recently to the core list, see below (I don't think the patch will apply as is though, because the formatting was changed by the mail client).

Thanks a lot Jonas, looks like I'll stick to adding a workaround to fpcup...

:)

Reply by email

Tomas Hajny
to Reinier Olislagers
Reinier Olislagers wrote 13 lines
On 20-9-2012 17:25, Jonas Maebe wrote: > > On 20 Sep 2012, at 17:18, Reinier Olislagers wrote: > >> Would looking into the actual fpmake bug make sense (i.e. is it doable >> for mere mortals like me?) Where would I look? > > It's probably related to how the makefiles clean the packages since > fpmake was introduced. Pierre posted a not really clean workaround > recently to the core list, see below (I don't think the patch will apply > as is though, because the formatting was changed by the mail client). Thanks a lot Jonas, looks like I'll stick to adding a workaround to fpcup...

Actually, I believe that looking into the fpmake bug should make more sense and yes, I think that it should be doable for "mere mortals" since it is written in standard (Object) Pascal rather than requiring some Makefile wizardry.

Tomas

Reply by email

Reinier Olislagers
to Tomas Hajny
Tomas Hajny wrote 19 lines
On Thu, September 20, 2012 17:30, Reinier Olislagers wrote: > On 20-9-2012 17:25, Jonas Maebe wrote: >> >> On 20 Sep 2012, at 17:18, Reinier Olislagers wrote: >> >>> Would looking into the actual fpmake bug make sense (i.e. is it doable >>> for mere mortals like me?) Where would I look? >> >> It's probably related to how the makefiles clean the packages since >> fpmake was introduced. Pierre posted a not really clean workaround >> recently to the core list, see below (I don't think the patch will apply >> as is though, because the formatting was changed by the mail client). > Thanks a lot Jonas, looks like I'll stick to adding a workaround to > fpcup... Actually, I believe that looking into the fpmake bug should make more sense and yes, I think that it should be doable for "mere mortals" since it is written in standard (Object) Pascal rather than requiring some Makefile wizardry.

Thanks Tomas,

What's the bug number?

Reply by email

Thomas Schatzl
to Tomas Hajny: Actually, I believe that looking into the fpmake bug should make more sense and yes, I…

Hi,

Tomas Hajny wrote 19 lines
On Thu, September 20, 2012 17:30, Reinier Olislagers wrote: > On 20-9-2012 17:25, Jonas Maebe wrote: >> >> On 20 Sep 2012, at 17:18, Reinier Olislagers wrote: >> >>> Would looking into the actual fpmake bug make sense (i.e. is it doable >>> for mere mortals like me?) Where would I look? >> >> It's probably related to how the makefiles clean the packages since >> fpmake was introduced. Pierre posted a not really clean workaround >> recently to the core list, see below (I don't think the patch will apply >> as is though, because the formatting was changed by the mail client). > Thanks a lot Jonas, looks like I'll stick to adding a workaround to > fpcup... Actually, I believe that looking into the fpmake bug should make more sense and yes, I think that it should be doable for "mere mortals" since it is written in standard (Object) Pascal rather than requiring some Makefile wizardry.

Cleaning directories is partially the responsibility of the makefiles though - who else cleans the fpmake executables themselves? Looking at comments in packages/Makefile.fpc, the issue is apparently known.

# In case of a distclean, perform an 'old'-style distclean. This to # avoid problems when the package is compiled using fpcmake prior to # running this clean using fpmake. It does not work well, though, since # the sub-directories are not

Reply by email

Jonas Maebe
to Thomas Schatzl

Thomas Schatzl wrote on Fri, 21 Sep 2012:

Show quoted text 9 lines
Cleaning directories is partially the responsibility of the makefiles though - who else cleans the fpmake executables themselves? Looking at comments in packages/Makefile.fpc, the issue is apparently known. # In case of a distclean, perform an 'old'-style distclean. This to # avoid problems when the package is compiled using fpcmake prior to # running this clean using fpmake. It does not work well, though, since # the sub-directories are not guess it makes sense to invert that situation, so that make

distclean no longer works if a package was compiled using fpcmake before (most people will have updated their trunk checkouts by now) but that it does work if fpmake was used.

Jonas

Reply by email