0.5.2
Bug fixes to run sdcc regression tests
+
+
+0.5.3
+
+Eliminate need of flex (for compile)
+Fix of some includes
cmdline->param(1),
cmdline->param(2),
cmdline->param(3) };*/
- conf_objects_cmd_print_node(con, 0, application);
+ conf_objects_cmd_print_node(con, 0, /*application*/&error_class_base);
return(DD_FALSE);
}
}
+int
+cmd_vfprintf(FILE *f, char *format, va_list ap)
+{
+ int ret;
+ if (!f)
+ return(0);
+#ifdef HAVE_VASPRINTF
+ char *msg= NULL;
+ vasprintf(&msg, format, ap);
+ ret= fprintf(f, "%s", msg);
+ free(msg);
+#else
+# ifdef HAVE_VSNPRINTF
+ char msg[80*25];
+ vsnprintf(msg, 80*25, format, ap);
+ ret= fprintf(f, "%s", msg);
+# else
+# ifdef HAVE_VPRINTF
+ char msg[80*25];
+ vsprintf(msg, format, ap); /* Dangerous */
+ ret= fprintf(f, "%s", msg);
+# else
+# ifdef HAVE_DOPRNT
+ /* ??? */
+ /*strcpy(msg, "Unimplemented printf has called.\n");*/
+# else
+ /*strcpy(msg, "printf can not be implemented, upgrade your libc.\n");*/
+# endif
+# endif
+# endif
+#endif
+ fflush(f);
+ return(ret);
+}
+
+int
+cmd_fprintf(FILE *f, char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ int ret= cmd_vfprintf(f, format, ap);
+ va_end(ap);
+ return(ret);
+}
+
+
/* End of cmd.src/cmdutil.cc */
uchar *bitaddr, uchar *bitmask,
char **symname);*/
extern char *proc_escape(char *string, int *len);
+extern int cmd_vfprintf(FILE *f, char *format, va_list ap);
+extern int cmd_fprintf(FILE *f, char *format, ...);
#endif
* Printing to actual_console
*/
+FILE *
+cl_commander::get_out(void)
+{
+ if (actual_console)
+ return(actual_console->get_out());
+ else if (frozen_console)
+ return(frozen_console->get_out());
+ return(0);
+}
+
int
cl_commander::dd_printf(char *format, ...)
{
void set_fd_set(void);
void prompt(void);
+ FILE *get_out(void);
int all_printf(char *format, ...); // print to all consoles
int all_print(char *string, int length);
int dd_printf(char *format, ...); // print to actual_console
else
cat >_test_.c <<EOF
#include <stdio.h>
-void main(void) {}
+int main(void) {return(0);}
EOF
$CXX -v -ggdb -c _test_.c 1>&5 2>&5
if test "$?" = "0"; then
echo "$as_me:$LINENO: result: $ucsim_cv_CXXggdb" >&5
echo "${ECHO_T}$ucsim_cv_CXXggdb" >&6
-if test "$ucsim_cv_CXXggdb" = "yes"; then
- gopt="-ggdb"
+
+echo "$as_me:$LINENO: checking whether $CXX accepts -gstabs" >&5
+echo $ECHO_N "checking whether $CXX accepts -gstabs... $ECHO_C" >&6
+if test "${ucsim_cv_CXXgstabs+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >_test_.c <<EOF
+#include <stdio.h>
+int main(void) {return(0);}
+EOF
+$CXX -v -gstabs -c _test_.c 1>&5 2>&5
+if test "$?" = "0"; then
+ ucsim_cv_CXXgstabs="yes"
+else
+ ucsim_cv_CXXgstabs="no"
+fi
+rm -f _test_.* a.out
+fi
+echo "$as_me:$LINENO: result: $ucsim_cv_CXXgstabs" >&5
+echo "${ECHO_T}$ucsim_cv_CXXgstabs" >&6
+
+if test "$ucsim_cv_CXXgstabs" = "yes"; then
+ gopt="-gstabs+ -g3"
+elif test "$ucsim_cv_CXXggdb" = "yes"; then
+ gopt="-ggdb -g3"
else
- gopt="-g"
+ gopt="-g"
fi
if test "$CXXFLAGS"x = x ;then
CXXFLAGS="$gopt"
else
cat >_test_.c <<EOF
#include <stdio.h>
-void main(void) {}
+int main(void) {return(0);}
EOF
$CXX -v -pipe -c _test_.c 1>&5 2>&5
if test "$?" = "0"; then
else
cat >_test_.c <<EOF
#include <stdio.h>
-void main(void) {}
+int main(void) {return(0);}
EOF
$CXX -v -fPIC -c _test_.c 1>&5 2>&5
if test "$?" = "0"; then
else
cat >_test_.c <<EOF
#include <stdio.h>
-void main(void) {}
+int main(void) {return(0);}
EOF
$CXX -v -fpic -c _test_.c 1>&5 2>&5
if test "$?" = "0"; then
AC_CACHE_CHECK(whether $$1 accepts -$2,ucsim_cv_$1$2,
cat >_test_.c <<EOF
#include <stdio.h>
-void main(void) {}
+int main(void) {return(0);}
EOF
$$1 -v -$2 -c _test_.c 1>&5 2>&5
if test "$?" = "0"; then
# This is the first time when CFLAGS are set/modified!!
DD_COPT(CXX, ggdb)
-if test "$ucsim_cv_CXXggdb" = "yes"; then
- gopt="-ggdb"
-else
- gopt="-g"
+DD_COPT(CXX, gstabs)
+if test "$ucsim_cv_CXXgstabs" = "yes"; then
+ gopt="-gstabs+ -g3"
+elif test "$ucsim_cv_CXXggdb" = "yes"; then
+ gopt="-ggdb -g3"
+else
+ gopt="-g"
fi
if test "$CXXFLAGS"x = x ;then
CXXFLAGS="$gopt"
const int err_stop= (err_unknown|err_error);
-/*
-#define ERROR_METHODS(NAME) \
-enum error_type \
-cl_error_##NAME ::get_type(void)\
-{\
- return(err_##NAME##_class.get_type());\
-}\
-bool \
-cl_error_##NAME ::is_on(void)\
-{\
- return(err_##NAME##_class.is_on());\
-}
-*/
-
#define ERROR_CLASS_DECL(NAME) \
extern class cl_error_class error_##NAME##_class;\
class cl_error_##NAME
-/*
-#define ERROR_CLASS_DEF(TYPE,NAME,CLASS_NAME) \
-class cl_error_class error_##NAME##_class(TYPE, CLASS_NAME);
-*/
-/*
-#define ERROR_CLASS_DEF_ON(TYPE,NAME,CLASS_NAME,ON) \
-class cl_error_class error_##NAME##_class(TYPE, CLASS_NAME, ON);
-*/
-
#define ERROR_CLASS_DEF_PARENT(TYPE,NAME,CLASS_NAME,PARENT) \
-class cl_error_class error_##NAME##_class(TYPE, CLASS_NAME, &(PARENT));
+class cl_error_class error_##NAME##_class(TYPE, CLASS_NAME, &(PARENT))
#define ERROR_CLASS_DEF_PARENT_ON(TYPE,NAME,CLASS_NAME,PARENT,ON) \
-class cl_error_class error_##NAME##_class(TYPE, CLASS_NAME, &(PARENT), ON);
+class cl_error_class error_##NAME##_class(TYPE, CLASS_NAME, &(PARENT), ON)
extern class cl_list *registered_errors;
#! /bin/sh
# libtool - Provide generalized library-building support services.
-# Generated automatically by (GNU 0.5.2)
+# Generated automatically by (GNU 0.5.3)
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
# Copyright (C) 1996-2000 Free Software Foundation, Inc.
class cl_address_decoder *ad;
class cl_memory_chip *chip;
- chip= new cl_memory_chip("rom_chip", 0x10000, 8, 0xff);
+ chip= new cl_memory_chip("rom_chip", 0x10000, 8/*, 0xff*/);
chip->init();
memchips->add(chip);
ad= new cl_address_decoder(as= rom/*address_space(MEM_ROM_ID)*/,
// cmd
#include "newcmdcl.h"
+#include "cmdutil.h"
// local
#include "memcl.h"
void
cl_error_mem_invalid_address::print(class cl_commander *c)
{
- c->dd_printf(get_type_name());
- c->dd_printf(": invalid address ", get_type_name());
- c->dd_printf(mem->addr_format, addr);
- c->dd_printf(" in memory ");
- c->dd_printf(mem->get_name());
- c->dd_printf(".\n");
+ FILE *f= c->get_out();
+ cmd_fprintf(f, "%s: invalid address ", get_type_name());
+ cmd_fprintf(f, mem->addr_format, addr);
+ cmd_fprintf(f, " in memory %s.\n", mem->get_name());
}
/* Non-decoded address space access */
void
cl_error_mem_non_decoded::print(class cl_commander *c)
{
- c->dd_printf(get_type_name());
- c->dd_printf(": access of non-decoded address ");
- c->dd_printf(mem->addr_format, addr);
- c->dd_printf(" in memory ");
- c->dd_printf(mem->get_name());
- c->dd_printf(".\n");
+ FILE *f= c->get_out();
+ cmd_fprintf(f, "%s: access of non-decoded address ", get_type_name());
+ cmd_fprintf(f, mem->addr_format, addr);
+ cmd_fprintf(f, " in memory %s.\n", mem->get_name());
}
ERROR_CLASS_DEF_PARENT(err_error,
stack_tracker_wrong_handle,
"stack_tracker_wrong_handle",
- error_stack_tracker_class)
+ error_stack_tracker_class);
cl_error_stack_tracker_wrong_handle::cl_error_stack_tracker_wrong_handle(bool write_op):
cl_error_stack_tracker()
#include "timercl.h"
#include "cmdstatcl.h"
#include "cmdmemcl.h"
+#include "cmdutil.h"
// local, sim.src
#include "uccl.h"
void
cl_error_unknown_code::print(class cl_commander *c)
{
- c->dd_printf(get_type_name());
- c->dd_printf(": unknown instruction code at ");
+ FILE *f= c->get_out();
+ cmd_fprintf(f, "%s: unknown instruction code at ", get_type_name());
if (uc->rom)
{
- c->dd_printf(uc->rom->addr_format, PC);
- c->dd_printf(" (");
- c->dd_printf(uc->rom->data_format, uc->rom->get(PC));
- c->dd_printf(")");
+ cmd_fprintf(f, uc->rom->addr_format, PC);
+ cmd_fprintf(f, " (");
+ cmd_fprintf(f, uc->rom->data_format, uc->rom->get(PC));
+ cmd_fprintf(f, ")");
}
else
- c->dd_printf("0x%06x", PC);
- c->dd_printf("\n");
+ cmd_fprintf(f, "0x%06x", PC);
+ cmd_fprintf(f, "\n");
}