[m-rev.] for review: update to Boehm GC v8.2.4
Peter Wang
novalazy at gmail.com
Tue Jul 11 12:33:19 AEST 2023
On Tue, 11 Jul 2023 12:16:56 +1000 Julien Fischer <jfischer at opturion.com> wrote:
>
>
> On Tue, 11 Jul 2023, Julien Fischer wrote:
>
> > There is an issue with the 64-bit version of MSVC:
> >
> > ../scripts/ml --grade hlc.gc --no-mercury-stdlib-dir
> > --trace-init-file ../browser/mer_browser.init --trace-init-file
> > ../mdbcomp/mer_mdbcomp.init --ssdb-init-file ../ssdb/mer_ssdb.init
> > -- -Fechoose_grade.exe choose_grade_init.obj \
> > choose_grade.obj grade_lib.obj grade_lib.grade_setup.obj
> > grade_lib.grade_solver.obj grade_lib.grade_spec.obj
> > grade_lib.grade_state.obj grade_lib.grade_string.obj
> > grade_lib.grade_structure.obj grade_lib.grade_vars.obj
> > var_value_names.obj \
> > ../trace/libmer_trace.lib ../trace/libmer_eventspec.lib
> > ../ssdb/libmer_ssdb.lib ../browser/libmer_browser.lib
> > ../mdbcomp/libmer_mdbcomp.lib ../library/libmer_std.lib
> > ../runtime/libmer_rt.lib ../boehm_gc/libgc.lib
> > libgc.lib(misc.obj) : error LNK2019: unresolved external symbol
> > __imp_MessageBoxA referenced in function GC_win32_MessageBoxA
>
> The following diff for boehm_gc/NT_MAKEFILE will resolve it.
> (I don't now why message box in the fatal error handler is now the
> default.)
>
Thanks. It looks like I made a mistake last year when preparing
release-8_2-mercury-20221006-rc by losing the commit
"Avoid linking with user32.dll on Windows." which does this:
diff --git a/misc.c b/misc.c
index 99747ecd..239fc433 100644
--- a/misc.c
+++ b/misc.c
@@ -34,6 +34,8 @@
# endif
# define NOSERVICE
# include <windows.h>
+/* Mercury-specific: avoid linking with user32.dll */
+#define DONT_USE_USER32_DLL
#endif
Should we:
1. define NO_MSGBOX_ON_ERROR, which prevents calling MessageBox
completely
2. define DONT_USE_USER32_DLL, which prevents statically linking to
user32.dll, but will try to look up MessageBox dynamically?
Peter
More information about the reviews
mailing list