2021-03-07 10:08 AEDT

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000519mercuryBugpublic2020-10-01 23:08
Assigned Tojuliensf 
Product Version 
Target VersionFixed in Version 
Summary0000519: extras/graphics/mercury_tcltk library may contain reference to unknown matherr symbol
Descriptionmtcltk.m contains the following:

** The following variable is a special hack that is needed in order for
** Sun shared libraries to be used for Tcl.

:- pragma foreign_code("C", "
    extern int matherr(void);
    int *tclDummyMathPtr = (int *) matherr;

This workaround is no longer necessary with modern versions of Tcl and the matherr() function has been removed since version 8.4. [1]

While libmercury_tcltk.so may be built, the resultant library may cause problems. For example, after building extras/graphics/mercury_tcltk:

$ cd extras/graphics/samples/calc
$ mmc --search-lib-files-dir ../../mercury_tcltk --library mercury_tcltk --make calc
Making calc
** Error making 'calc'.
../../mercury_tcltk/libmercury_tcltk.so: undefined reference to 'matherr'
collect2: error: ld returned 1 exit status

We could either just remove the workaround or perhaps wrap it in some ifdef/endif block.

[1] https://wiki.tcl-lang.org/page/tclDummyMathPtr
TagsNo tags attached.
Attached Files




juliensf (administrator)

I've deleted it; I'm pretty sure we don't care about versions of Tcl from before 1999 any more.

-Issue History
Date Modified Username Field Change
2020-09-17 05:14 keri New Issue
2020-10-01 23:08 juliensf Assigned To => juliensf
2020-10-01 23:08 juliensf Status new => resolved
2020-10-01 23:08 juliensf Resolution open => fixed
2020-10-01 23:08 juliensf Note Added: 0001105
+Issue History