From 960c5b5873bff4a2754994383d14533635b0e633 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Mon, 18 Mar 2013 12:52:43 -0700 Subject: [PATCH] Fix issues observed by Sun C compiler --- 0readme_ethernet.txt | 5 ++++- I7094/i7094_com.c | 2 +- Ibm1130/dmsr2v12slet.h | 10 +++++----- Ibm1130/ibm1130_conout.h | 6 +++--- Ibm1130/ibm1130_stddev.c | 10 +++++++++- PDP11/pdp11_rq.c | 2 +- VAX/vax730_rb.c | 2 +- VAX/vax860_stddev.c | 2 +- makefile | 22 +++++++++++++++++----- scp.c | 2 +- 10 files changed, 43 insertions(+), 20 deletions(-) diff --git a/0readme_ethernet.txt b/0readme_ethernet.txt index eaa2709f..9a74e0f1 100644 --- a/0readme_ethernet.txt +++ b/0readme_ethernet.txt @@ -274,6 +274,7 @@ Building on Linux, {Free|Net|Open}BSD, OS/X, Solaris, other *nix: Older versions of libpcap can be found, for various systems, at: Linux : search for your variant on http://rpmfind.net OS/X : Apple Developer's site? + HP-UX : ftp://hpux.connect.org.uk/hpux/Networking/Admin/ NOTE: The repositories for older versions of these platforms don't contain a version of libpcap greater than 0.8.1. @@ -300,7 +301,9 @@ Building on Linux, {Free|Net|Open}BSD, OS/X, Solaris, other *nix: dynamically load the libpcap library. This means that the same simulator binaries will run on any system whether or not libpcap is installed. If you want to force direct libpcap linking during a build you do so by - typing 'make USE_NETWORK=1' + typing 'make USE_NETWORK=1'. You must build with gcc to do this. There + is no observable benefit to statically linking against libpcap and as + such support for this ia deprecated. 4. Build it! diff --git a/I7094/i7094_com.c b/I7094/i7094_com.c index cacb10ee..b85ca9f4 100644 --- a/I7094/i7094_com.c +++ b/I7094/i7094_com.c @@ -338,7 +338,7 @@ MTAB com_mod[] = { NULL, &com_show_ctrl, 0 }, { MTAB_XTD | MTAB_VDV | MTAB_NMO, COMR_OQ, "OUTQ", NULL, NULL, &com_show_ctrl, 0 }, - { MTAB_XTD | MTAB_VDV | MTAB_NMO, -1, "ALL", NULL, + { MTAB_XTD | MTAB_VDV | MTAB_NMO, 0xFFFFFFFF, "ALL", NULL, NULL, &com_show_ctrl, 0 }, { 0 } }; diff --git a/Ibm1130/dmsr2v12slet.h b/Ibm1130/dmsr2v12slet.h index 7d00676b..3260b9bc 100644 --- a/Ibm1130/dmsr2v12slet.h +++ b/Ibm1130/dmsr2v12slet.h @@ -63,17 +63,17 @@ 0x0080, 0x0aa0, 0x0140, 0x00c8, 0x0081, 0x0aa0, 0x0140, 0x00c9, 0x0082, 0x0be2, 0x0140, 0x00ca, -0x0083, 0x08b6, 0x01e8, 0x00cb, +0x0083, 0x08b6, 0x01e8, 0x00cb, 0x0084, 0x0aa0, 0x0140, 0x00cd, -0x008c, 0x0000, 0x0134, 0x80ceU, +0x008c, 0x0000, 0x0134, (int16)0x80ce, 0x008d, 0x0000, 0x0113, 0x00cf, 0x008e, 0x0000, 0x011f, 0x00d0, -0x008f, 0x0000, 0x009c, 0x80d1U, +0x008f, 0x0000, 0x009c, (int16)0x80d1, 0x0090, 0x0000, 0x00ab, 0x00d2, -0x0091, 0x0000, 0x016c, 0x80d3U, +0x0091, 0x0000, 0x016c, (int16)0x80d3, 0x0092, 0x0000, 0x0174, 0x00d5, 0x0093, 0x0000, 0x00b9, 0x00d7, -0x0094, 0x0000, 0x0003, 0x80d8U, +0x0094, 0x0000, 0x0003, (int16)0x80d8, 0x0095, 0x0000, 0x0003, 0x00d9, 0x0096, 0x00f0, 0x00ec, 0x00da, 0x0097, 0x00f0, 0x01a2, 0x00db, diff --git a/Ibm1130/ibm1130_conout.h b/Ibm1130/ibm1130_conout.h index 478e005d..953017c4 100644 --- a/Ibm1130/ibm1130_conout.h +++ b/Ibm1130/ibm1130_conout.h @@ -12,9 +12,9 @@ #define _0_ '\0' -#define CENT_ '\xA2' /* cent and not: standard DOS mapping */ -#define NOT_ '\xAC' -#define IGNR_ '\xFF' +#define CENT_ 0xA2 /* cent and not: standard DOS mapping */ +#define NOT_ 0xAC +#define IGNR_ 0xFF #define CRLF_ '\r' #define COUT_IS_CTRL 0x01 /* conout characters with bit 1 set are controls: */ diff --git a/Ibm1130/ibm1130_stddev.c b/Ibm1130/ibm1130_stddev.c index b6d15034..ba268668 100644 --- a/Ibm1130/ibm1130_stddev.c +++ b/Ibm1130/ibm1130_stddev.c @@ -505,7 +505,11 @@ static t_stat tto_reset (DEVICE *dptr) } #ifdef _MSC_VER -# pragma warning(disable:4245) /* enable int->char demotion warning caused by characters with high-bit set */ +# pragma warning(disable:4245) /* disable int->char demotion warning caused by characters with high-bit set */ +#endif + +#ifdef __SUNPRO_C +# pragma error_messages (off, E_INIT_DOES_NOT_FIT) /* disable int->char demotion warning caused by characters with high-bit set */ #endif static struct { /* default input mapping for APL */ @@ -666,6 +670,10 @@ static OS_MAP default_os_map[] = /* overstrike mapping for APLPLUS font */ '\xfe', 2, "\x3a\xa8", }; +#ifdef __SUNPRO_C +# pragma error_messages (default, E_INIT_DOES_NOT_FIT) /* enable int->char demotion warning caused by characters with high-bit set */ +#endif + #ifdef _MSC_VER # pragma warning(default:4245) /* enable int->char demotion warning */ #endif diff --git a/PDP11/pdp11_rq.c b/PDP11/pdp11_rq.c index 9d7c7d4b..5d93afa5 100644 --- a/PDP11/pdp11_rq.c +++ b/PDP11/pdp11_rq.c @@ -151,7 +151,7 @@ extern uint32 cpu_opt; #define RQ_NUMDR 4 /* # drives */ #define RQ_NUMBY 512 /* bytes per block */ #define RQ_MAXFR (1 << 16) /* max xfer */ -#define RQ_MAPXFER (1 << 31) /* mapped xfer */ +#define RQ_MAPXFER (1u << 31) /* mapped xfer */ #define RQ_M_PFN 0x1FFFFF /* map entry PFN */ #define UNIT_V_ONL (UNIT_V_UF + 0) /* online */ diff --git a/VAX/vax730_rb.c b/VAX/vax730_rb.c index 6d78045f..5ca41ae3 100644 --- a/VAX/vax730_rb.c +++ b/VAX/vax730_rb.c @@ -181,7 +181,7 @@ #define RBDA_V_TRACK 8 /* track */ #define RBDA_M_TRACK 0xFF #define RBDA_V_CYL 16 /* cylinder */ -#define RBDA_M_CYL 0xFFFF +#define RBDA_M_CYL 0xFFFFu #define RBDA_TRACK (RBDA_M_TRACK << RBDA_V_TRACK) #define RBDA_CYL (RBDA_M_CYL << RBDA_V_CYL) #define GET_SECT(x) (((x) >> RBDA_V_SECT) & RBDA_M_SECT) diff --git a/VAX/vax860_stddev.c b/VAX/vax860_stddev.c index e825fd01..759166db 100644 --- a/VAX/vax860_stddev.c +++ b/VAX/vax860_stddev.c @@ -107,7 +107,7 @@ #define STXCS_DA (STXCS_M_DA << STXCS_V_DA) #define STXCS_GETDA(x) (((x) >> STXCS_V_DA) & STXCS_M_DA) #define STXCS_V_STS 24 -#define STXCS_M_STS 0xFF +#define STXCS_M_STS 0xFFu #define STXCS_STS (STXCS_M_STS << STXCS_V_STS) #define STXCS_WR (STXCS_FNC | CSR_DONE | CSR_IE | STXCS_DA) diff --git a/makefile b/makefile index c5ff3d21..56723286 100644 --- a/makefile +++ b/makefile @@ -16,9 +16,11 @@ # In general, the logic below will detect and build with the available # features which the host build environment provides. # -# Dynamic loading of libpcap is the default behavior if pcap.h is -# available at build time. Direct calls to libpcap can be enabled -# if GNU make is invoked with USE_NETWORK=1 on the command line. +# Dynamic loading of libpcap is the preferred default behavior if pcap.h +# is available at build time. Support to statically linking against libpcap +# is deprecated and may be removed in the future. Static linking against +# libpcap can be enabled if GNU make is invoked with USE_NETWORK=1 on the +# command line. # # The default build will build compiler optimized binaries. # If debugging is desired, then GNU make can be invoked with @@ -76,8 +78,8 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) COMPILER_NAME = GCC Version: $(GCC_VERSION) ifeq (,$(GCC_VERSION)) ifeq (SunOS,$(OSTYPE)) - ifneq (,$(shell $(GCC) -V | grep 'Sun C')) - SUNC_VERSION = $(shell $(GCC) -V | grep 'Sun C' | awk '{ print $$4 }') + ifneq (,$(shell $(GCC) -V 2>&1 | grep 'Sun C')) + SUNC_VERSION = $(shell $(GCC) -V 2>&1 | grep 'Sun C' | awk '{ print $$4 }') COMPILER_NAME = Sun C $(SUNC_VERSION) endif endif @@ -225,6 +227,13 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) ifneq (,$(call find_lib,$(PCAPLIB))) ifneq ($(USE_NETWORK),) # Network support specified on the GNU make command line NETWORK_CCDEFS = -DUSE_NETWORK -I$(dir $(call find_include,pcap)) + $(info *** Warning ***) + $(info *** Warning *** Statically linking against libpcap is provides no measurable) + $(info *** Warning *** benefits over dynamically linking libpcap.) + $(info *** Warning ***) + $(info *** Warning *** Support for linking this way is currently deprecated and may be removed) + $(info *** Warning *** in the future.) + $(info *** Warning ***) ifeq (cygwin,$(OSTYPE)) # cygwin has no ldconfig so explicitly specify pcap object library NETWORK_LDFLAGS = -L$(dir $(call find_lib,$(PCAPLIB))) -Wl,-R,$(dir $(call find_lib,$(PCAPLIB))) -l$(PCAPLIB) @@ -273,6 +282,9 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) $(info *** Warning *** simh networking, it is recommended that you install the) $(info *** Warning *** libpcap-dev package from your $(OSNAME) distribution) $(info *** Warning ***) + $(info *** Warning *** Building with the components manually installed from www.tcpdump.org) + $(info *** Warning *** is officially deprecated. Attempting to do so is unsupported.) + $(info *** Warning ***) endif else $(error using libpcap: $(call find_include,pcap) missing $(PCAPLIB).$(LIBEXT)) diff --git a/scp.c b/scp.c index 97138984..e89247e6 100644 --- a/scp.c +++ b/scp.c @@ -2774,6 +2774,7 @@ if (flag) { fprintf (st, "\n\t\tMemory Access: %s Endian", sim_end ? "Little" : "Big"); fprintf (st, "\n\t\tMemory Pointer Size: %d bits", (int)sizeof(dptr)*8); fprintf (st, "\n\t\t%s", sim_toffset_64 ? "Large File (>2GB) support" : "No Large File support"); + fprintf (st, "\n\t\tOS clock tick size: %dms", os_tick_size); #if defined(__VMS) fprintf (st, "\n\t\tOS: VMS"); #elif defined(_WIN32) @@ -2783,7 +2784,6 @@ if (flag) { fflush (st); system ("uname -a"); #endif - fprintf (st, "\n\t\tOS clock tick size: %dms", os_tick_size); } #if defined(SIM_GIT_COMMIT_ID) #define S_xstr(a) S_str(a)