I tried again.

"make all" works fine now, but "make check" still generates errors. But this is probably due to 
some still missing dependencies, as I already mentioned in the previous thread "Need help - several tests 
fail". When I invoke "make check" in a fresh build dir directly after CMake, then the following error is 
generated when compiling gnucash/report/html-chart.scm:

In scripts/compile.scm:
   259:26 19 (_ _)
In system/base/target.scm:
     57:6 18 (with-target _ _)
In system/base/compile.scm:
    152:6 17 (compile-file _ #:output-file _ #:from _ #:to _ #:env _ …)
     43:4 16 (call-once _)
In ice-9/boot-9.scm:
    841:4 15 (with-throw-handler _ _ _)
In system/base/compile.scm:
    59:11 14 (_)
   155:11 13 (_ #<closed: file 55fd66137230>)
   235:18 12 (read-and-compile #<input: html-chart.scm 13> #:from _ # …)
   183:32 11 (compile-fold (#<procedure compile-tree-il (x e opts)>) …)
In ice-9/boot-9.scm:
   2312:4 10 (save-module-excursion #<procedure 55fd660bb680 at lang…>)
In language/scheme/compile-tree-il.scm:
    31:15  9 (_)
In ice-9/psyntax.scm:
  1235:36  8 (expand-top-sequence ((use-modules (gnucash json #))) _ …)
  1182:24  7 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
   285:10  6 (parse _ (("placeholder" placeholder)) (()) _ c&e (# #) #)
In ice-9/boot-9.scm:
  3377:20  5 (process-use-modules _)
   222:17  4 (map1 (((gnucash json builder))))
  3378:31  3 (_ ((gnucash json builder)))
   2803:6  2 (resolve-interface _ #:select _ #:hide _ #:prefix _ # _ …)
In unknown file:
           1 (scm-error misc-error #f "~A ~S" ("no code for modu…" …) …)
In ice-9/boot-9.scm:
   752:25  0 (dispatch-exception _ _ _)

ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
no code for module (gnucash json builder)

Instead if I invoke "make all" first after CMake and then "make "check", 
everything builds correctly.

The target with missing dependencies seems to be scm-report-2.

Finally I tried to clarify the question, if and how an existing GnuCash 
installation can interfere with the build process, just out of interest.

In PR #574 <https://github.com/Gnucash/gnucash/pull/574> you wrote:

the linker picks up a 3.x version of gnucash installed system-wide

And John Ralls wrote:

The problem is that Guile loads C libraries with dlopen and that looks on the 
system path [...] before it looks in the build directory

But as far as I can see when guile is invoked LD_LIBRARY_PATH is always set to 
"${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash", i.e. that these directories are 
searched first before any system paths (see 

Did I miss something?


Am 12.09.19 um 10:45 schrieb Geert Janssens:
Hi Christian,

With the last commit on master it works here now.

Can you retry ?


Op donderdag 12 september 2019 09:47:43 CEST schreef Geert Janssens:
Hi Christian,

Thanks to your detailed description I can now reproduce the problem when
building master with "make" rather than "ninja".

Turns out there's a hidden circular dependency between engine.scm and
engine- utilities.scm via the call to
(gnc:module-begin-syntax (gnc:module-load "gnucash/engine" 0))

I have a fix ready for this particular case, but there are more of these so
I'm still working through the others.



Op donderdag 12 september 2019 00:46:13 CEST schreef Christian Gruber:
This thread is related to the build issue I encountered when finally
building PR #574 <https://github.com/Gnucash/gnucash/pull/574> locally.

Invoking "make all" on current master lead to the following build error
when compiling libgnucash/engine/engine-utilities.scm:

Backtrace:            1 (primitive-load-path
"gnucash/engine/gnc-numeric") In ice-9/boot-9.scm:    752:25  0
(dispatch-exception _ _ _) ice-9/boot-9.scm:752:25: In procedure
dispatch-exception: In procedure primitive-load-path: Unable to find
file "gnucash/engine/gnc-numeric" in load path

File libgnucash/engine/engine-utilities.scm is built with target
scm-engine-1, therefore the same build error can be reproduced by
invoking "make scm-engine-1" or "make scm-engine" as well.

According to PR #574 <https://github.com/Gnucash/gnucash/pull/574>  I
can preclude, that this is due to reusing a maint build directory, since
I built in a clean and fresh build dir.

Next I tried to build again after moving directories
/usr/lib/x86_64-linux-gnu/gnucash/gnucash and files

After that I uninstalled my GnuCash 3.5, which was installed before from
distros package manager.

Finally I searched my whole system for gnucash directories and removed
them in /usr/local/... where I previously installed GnuCash built from
source repo.

Everytime I built in a clean and fresh build dir, but the build error
was always the same.

Finally I further investigated sources and found a maybe important
change in file libgnucash/engine/engine.scm made in commit 53f59f7.
Therefore I tried two builds at the end, one with commit 53f59f7 and the
second with commit cb50f7a, which is one commit before 53f59f7. The
result was, that commit 53f59f7 leads to the mentioned build error, but
commit cb50f7a could successfully be built.

Any ideas?


gnucash-devel mailing list
gnucash-devel mailing list

gnucash-devel mailing list

Reply via email to