Hi there,
I am sure this is a known issue but my searches turned up zilch
so, just in case ...
I came to build sac-101.2 on a NetBSD 4.99.58 platform with
gcc (GCC) 4.1.3 20080202 prerelease (NetBSD nb1 20070620), the
sac build being configured thus:
./configure --prefix=/local/scratch/kevin/sac-101.2
resulting in:
Compliation Options for sac (Seismic Analysis Code 101.2)
CFLAGS =
LDFLAGS =
LIBS = -lm -lcurses
Debug =
Optimization =
Database = off
Matlab = off
X11-buffer = on
X11-depth = on
X_LIBS = -L/usr/pkg/lib
X_CFLAGS = -I/usr/pkg/include
Readline = off
Editline = on
Install Base = /local/scratch/kevin/sac-101.2
System = (i386-unknown-netbsdelf4.99.58)
and saw this error:
gcc -DHAVE_CONFIG_H -I. -I. -I../inc -I/usr/pkg/include -I../inc
-I../libedit/include -c -o co/zgpmsg.o co/zgpmsg.c
In file included from /usr/pkg/include/readline/chardefs.h:26,
from /usr/pkg/include/readline/keymaps.h:36,
from /usr/pkg/include/readline/readline.h:38,
from co/zgpmsg.c:93:
/usr/include/ctype.h:71: error: expected identifier or '(' before 'int'
/usr/include/ctype.h:71: error: expected ')' before '?' token
/usr/include/ctype.h:72: error: expected identifier or '(' before 'int'
/usr/include/ctype.h:72: error: expected ')' before '?' token
this occurs because the toupper/tolower declarations in this system's
ctype.h
int tolower(int);
int toupper(int);
get mangled by the macro declaration in sac's
src/co/stdu.h
#ifndef CYGWIN
/* macro expansions */
#define tolower(c) ((c>='A' && c<='Z') ? (c+('a'-'A')) : c)
#define toupper(c) ((c>='a' && c<='z') ? (c-('a'-'A')) : c)
#endif /* CYGWIN */
as they are only protected by the CYGWIN define and so appear as:
int ((int>='A' && int<='Z') ? (int+('a'-'A')) : int);
int ((int>='a' && int<='z') ? (int-('a'-'A')) : int);
After removing the macro definitions, the code compiles OK.
--
Kevin M. Buckley Room: CO327
School of Mathematics, Statistics Phone: +64 4 463 5971
and Computer Science
Victoria University of Wellington
New Zealand
I am sure this is a known issue but my searches turned up zilch
so, just in case ...
I came to build sac-101.2 on a NetBSD 4.99.58 platform with
gcc (GCC) 4.1.3 20080202 prerelease (NetBSD nb1 20070620), the
sac build being configured thus:
./configure --prefix=/local/scratch/kevin/sac-101.2
resulting in:
Compliation Options for sac (Seismic Analysis Code 101.2)
CFLAGS =
LDFLAGS =
LIBS = -lm -lcurses
Debug =
Optimization =
Database = off
Matlab = off
X11-buffer = on
X11-depth = on
X_LIBS = -L/usr/pkg/lib
X_CFLAGS = -I/usr/pkg/include
Readline = off
Editline = on
Install Base = /local/scratch/kevin/sac-101.2
System = (i386-unknown-netbsdelf4.99.58)
and saw this error:
gcc -DHAVE_CONFIG_H -I. -I. -I../inc -I/usr/pkg/include -I../inc
-I../libedit/include -c -o co/zgpmsg.o co/zgpmsg.c
In file included from /usr/pkg/include/readline/chardefs.h:26,
from /usr/pkg/include/readline/keymaps.h:36,
from /usr/pkg/include/readline/readline.h:38,
from co/zgpmsg.c:93:
/usr/include/ctype.h:71: error: expected identifier or '(' before 'int'
/usr/include/ctype.h:71: error: expected ')' before '?' token
/usr/include/ctype.h:72: error: expected identifier or '(' before 'int'
/usr/include/ctype.h:72: error: expected ')' before '?' token
this occurs because the toupper/tolower declarations in this system's
ctype.h
int tolower(int);
int toupper(int);
get mangled by the macro declaration in sac's
src/co/stdu.h
#ifndef CYGWIN
/* macro expansions */
#define tolower(c) ((c>='A' && c<='Z') ? (c+('a'-'A')) : c)
#define toupper(c) ((c>='a' && c<='z') ? (c-('a'-'A')) : c)
#endif /* CYGWIN */
as they are only protected by the CYGWIN define and so appear as:
int ((int>='A' && int<='Z') ? (int+('a'-'A')) : int);
int ((int>='a' && int<='z') ? (int-('a'-'A')) : int);
After removing the macro definitions, the code compiles OK.
--
Kevin M. Buckley Room: CO327
School of Mathematics, Statistics Phone: +64 4 463 5971
and Computer Science
Victoria University of Wellington
New Zealand
-
Hi Keven,
I've reported the same problem a couple of weeks ago, and provided a patch.
http://www.iris.washington.edu/pipermail/sac-dev/2008-September/000088.html
This should be fixed in the next version.
Best regards,
--
Kuang He
Department of Physics
University of Connecticut
Storrs, CT 06269-3046
Tel: +1.860.486.4919
Web: http://www.phys.uconn.edu/~he/
On Mon, Sep 29, 2008 at 9:15 PM, <Kevin.Buckley<at>mcs.vuw.ac.nz> wrote:
Hi there,
I am sure this is a known issue but my searches turned up zilch
so, just in case ...
I came to build sac-101.2 on a NetBSD 4.99.58 platform with
gcc (GCC) 4.1.3 20080202 prerelease (NetBSD nb1 20070620), the
sac build being configured thus:
./configure --prefix=/local/scratch/kevin/sac-101.2
resulting in:
Compliation Options for sac (Seismic Analysis Code 101.2)
CFLAGS =
LDFLAGS =
LIBS = -lm -lcurses
Debug =
Optimization =
Database = off
Matlab = off
X11-buffer = on
X11-depth = on
X_LIBS = -L/usr/pkg/lib
X_CFLAGS = -I/usr/pkg/include
Readline = off
Editline = on
Install Base = /local/scratch/kevin/sac-101.2
System = (i386-unknown-netbsdelf4.99.58)
and saw this error:
gcc -DHAVE_CONFIG_H -I. -I. -I../inc -I/usr/pkg/include -I../inc
-I../libedit/include -c -o co/zgpmsg.o co/zgpmsg.c
In file included from /usr/pkg/include/readline/chardefs.h:26,
from /usr/pkg/include/readline/keymaps.h:36,
from /usr/pkg/include/readline/readline.h:38,
from co/zgpmsg.c:93:
/usr/include/ctype.h:71: error: expected identifier or '(' before 'int'
/usr/include/ctype.h:71: error: expected ')' before '?' token
/usr/include/ctype.h:72: error: expected identifier or '(' before 'int'
/usr/include/ctype.h:72: error: expected ')' before '?' token
this occurs because the toupper/tolower declarations in this system's
ctype.h
int tolower(int);
int toupper(int);
get mangled by the macro declaration in sac's
src/co/stdu.h
#ifndef CYGWIN
/* macro expansions */
#define tolower(c) ((c>='A' && c<='Z') ? (c+('a'-'A')) : c)
#define toupper(c) ((c>='a' && c<='z') ? (c-('a'-'A')) : c)
#endif /* CYGWIN */
as they are only protected by the CYGWIN define and so appear as:
int ((int>='A' && int<='Z') ? (int+('a'-'A')) : int);
int ((int>='a' && int<='z') ? (int-('a'-'A')) : int);
After removing the macro definitions, the code compiles OK.
--
Kevin M. Buckley Room: CO327
School of Mathematics, Statistics Phone: +64 4 463 5971
and Computer Science
Victoria University of Wellington
New Zealand
_______________________________________________
sac-help mailing list
sac-help<at>iris.washington.edu
http://www.iris.washington.edu/mailman/listinfo/sac-help
-
Kevin.Buckley@mcs.vuw.ac.nz2008-09-30 22:43:17Hello Kuang He
I've reported the same problem a couple of weeks ago, and provided a
I knew I wouldn't be the first to have seen this but didn't think it
patch.
http://www.iris.washington.edu/pipermail/sac-dev/2008-September/000088.html
would be so recent.
I wonder why my search did not throw your post up. I think I must have
assumed it must be NetBSD specific (only recently started using that
platform) so searched with the term NetBSD rather than just BSD.
I don't think I had found sac-dev either ?
This should be fixed in the next version.
Sounds like the inclusion of <ctype.h> is the way to go, rather than
removing the macros for those few systems that don't have the system
calls.
Thanks for the feedback,
Kevin
-