Unpredictable make -- possibly related to intl-scm/guile-strings.c
Jeff Kletsky
gnucash at allycomm.com
Wed Mar 10 21:49:06 EST 2010
I've been running in circles for the last several days with a problem
that manifests itself when, from what I can tell, the code in engine.i
tries to create Guile variables using the SET_ENUM construct. The
console, in my case, reports
Backtrace:
In current input:
1: 0* (set! OPTION-SECTION-ACCOUNTS (OPTION-SECTION-ACCOUNTS))
<unnamed port>:1:1: In expression (set! OPTION-SECTION-ACCOUNTS
(OPTION-SECTION-ACCOUNTS)):
<unnamed port>:1:1: Unbound variable: OPTION-SECTION-ACCOUNTS
This has been especially hard to track down as the order of compiling
different (git) checkouts of the source code changes the result.
I don't know if it is a git/make problem, or something not quite right
in the GNUCash build process.
I can, for example,
0) Run some builds
1) Checkout df0f85d and have it work
2) Checkout 8b062ba and have it fail
3) Checkout df0f85d (again) and have it fail this time
or
4) Checkout edd8b26 and have it work (as it should)
5) Checkout df0f85d and have it work (which it does NOT if built in a
"fresh" directory)
From what I can tell, the only file different in the source tree
between (1) and (3) in this case was intl-scm/guile-strings.c
Compilation is being done out of a different directory than where the
source resides.
I've confirmed that df0f85d is "bad" by checking it out into a clean
directory and compiling it either there, or in another build directory.
I've tried:
* make clean
* removing the install target directories
* re-running configure
The non-comment differences between edd8b26 and df0f85d are:
diff --git a/src/libqof/qof/qofbookslots.h b/src/libqof/qof/qofbookslots.h
index d01d10b..93287eb 100644
--- a/src/libqof/qof/qofbookslots.h
+++ b/src/libqof/qof/qofbookslots.h
+#include <glib/gi18n.h>
-#define KVP_OPTION_PATH "options"
-#define OPTION_SECTION_ACCOUNTS "Accounts"
-#define OPTION_NAME_TRADING_ACCOUNTS "Trading Accounts"
+#define KVP_OPTION_PATH "options"
+#define OPTION_SECTION_ACCOUNTS _("Accounts")
+#define OPTION_NAME_TRADING_ACCOUNTS _("Trading Accounts")
There doesn't seem to be any significant differences in the source
directories between "wrongly working" df0f85d and "properly failing"
df0f85d:
jeff at fx:~$ diff -rq state.16/gnucash-devel/ state.17/should-be-bad/
Files state.16/gnucash-devel/src/doc/design/gnucash-design.info and
state.17/should-be-bad/src/doc/design/gnucash-design.info differ
Files state.16/gnucash-devel/src/doc/design/stamp-vti and
state.17/should-be-bad/src/doc/design/stamp-vti differ
Files state.16/gnucash-devel/src/doc/design/version.texi and
state.17/should-be-bad/src/doc/design/version.texi differ
I'm thinking that something isn't right in the build process, probably
related to the generation of Guile-related translations.
Does this sound familiar to anyone?
I'd rather not have to do a fresh checkout and compile every time I take
a step forward.
More information about the gnucash-devel
mailing list