[GNC-dev] Build error with scm-engine on current master

Christian Gruber christian.gruber at posteo.de
Fri Sep 13 18:01:32 EDT 2019


Oh I missed that. I actually fetched current state without rebasing.

Now everything is fine.

Regards,
Christian

Am 13.09.19 um 21:38 schrieb Geert Janssens:
> John pushed a fix for your make check error earlier today.
>
> As for the load path, I'm not sure. I know we have had issues with this in the
> past. Perhaps those are solved by now.
>
> Regards,
>
> Geert
>
> Op vrijdag 13 september 2019 21:27:41 CEST schreef Christian Gruber:
>> 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:
>>
>> Backtrace:
>> 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
>> http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html).
>>
>> Did I miss something?
>>
>> Christian
>>
>> 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 ?
>>>
>>> Geert
>>>
>>> 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.
>>>>
>>>> Regards,
>>>>
>>>> Geert
>>>>
>>>> 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
>>>>> /usr/lib/x86_64-linux-gnu/gnucash/libgnc*.so.
>>>>>
>>>>> 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?
>>>>>
>>>>> Christian
>>>>>
>>>>> _______________________________________________
>>>>> gnucash-devel mailing list
>>>>> gnucash-devel at gnucash.org
>>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>>>> _______________________________________________
>>>> gnucash-devel mailing list
>>>> gnucash-devel at gnucash.org
>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>> _______________________________________________
>> gnucash-devel mailing list
>> gnucash-devel at gnucash.org
>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>
>
>


More information about the gnucash-devel mailing list