You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I tried to compile es on cygwin (64bit) by using the tarball for the 0.9 release.
I configured the source (from an other build directory) and ran make:
[...]
gcc -I. -I../es-0.9 -g -O2 -c -o prim-sys.o ../es-0.9/prim-sys.c
gcc -I. -I../es-0.9 -g -O2 -c -o prim.o ../es-0.9/prim.c
gcc -I. -I../es-0.9 -g -O2 -c -o print.o ../es-0.9/print.c
../es-0.9/print.c:66:14: error: conflicting types for ‘utoa’
static char *utoa(unsigned long u, char *t, unsigned int radix, char *digit) {
^
In file included from /usr/include/sys/unistd.h:8:0,
from /usr/include/unistd.h:4,
from ../es-0.9/stdenv.h:24,
from ../es-0.9/es.h:4,
from ../es-0.9/print.c:3:
/usr/include/stdlib.h:184:8: note: previous declaration of ‘utoa’ was here
char * _EXFUN(utoa,(unsigned, char *, int));
^
<builtin>: recipe for target 'print.o' failed
make: *** [print.o] Error 1
$
It seems that the function utoa defined in print.c clashes with a function of the same name defined in stdlib.h.
$ grep -r 'utoa' . /opt/es-0.9
./print.c:static char *utoa(unsigned long u, char *t, unsigned int radix, char *digit) {
./print.c: t = utoa(u / radix, t, radix, digit);
./print.c: len = utoa(u, number, radix, table[upper]) - number;
This function is only used two times. Let's just rename it?
$ sed -ri 's/utoa/another_utoa/g' **/**.c /opt/es-0.9
$ grep -r 'utoa' . /opt/es-0.9
./print.c:static char *another_utoa(unsigned long u, char *t, unsigned int radix, char *digit) {
./print.c: t = another_utoa(u / radix, t, radix, digit);
./print.c: len = another_utoa(u, number, radix, table[upper]) - number;
I could now compile the es from the source directory by using ./configure && make. (I needed to install the bison package)
The text was updated successfully, but these errors were encountered:
memreflect
added a commit
to memreflect/es-shell
that referenced
this issue
Apr 6, 2022
wryun#11 describes an issue when building on the Cygwin
platform; it defines its own 'utoa' function with a different signature.
It has been renamed to 'utostr'.
I tried to compile
es
on cygwin (64bit) by using the tarball for the 0.9 release.I configured the source (from an other build directory) and ran
make
:It seems that the function
utoa
defined in print.c clashes with a function of the same name defined instdlib.h
.This function is only used two times. Let's just rename it?
I could now compile the
es
from the source directory by using./configure && make
. (I needed to install thebison
package)The text was updated successfully, but these errors were encountered: