From 0280cb66f5c53883c635562ce1b406de8edea988 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 20 Aug 1998 14:39:09 +0000 Subject: FreeBSD stack compiles for the first time (except libc/strsep.c) --- c/Makefile.in | 9 + c/src/exec/score/cpu/i386/cpu.h | 2 +- c/src/lib/Makefile.in | 10 +- c/src/lib/libbsp/m68k/gen68360/Makefile.in | 9 +- c/src/lib/libbsp/m68k/gen68360/network/Makefile.in | 3 +- c/src/lib/libbsp/m68k/gen68360/network/network.c | 911 +++++++++++---------- c/src/lib/libbsp/m68k/gen68360/wrapup/Makefile.in | 8 +- c/src/lib/wrapup/Makefile.in | 1 + c/src/make/compilers/gcc-target-default.cfg | 8 +- c/src/wrapup/Makefile.in | 1 + configure | 282 ++++--- configure.in | 20 +- make/compilers/gcc-target-default.cfg | 8 +- make/custom/FreeBSD-posix.cfg | 4 + make/custom/HPUX9-posix.cfg | 4 + make/custom/Linux-posix.cfg | 4 + make/custom/Solaris-posix.cfg | 4 + make/custom/cvme961.cfg | 4 + make/custom/default.cfg | 9 + make/custom/dmv152.cfg | 4 + make/custom/efi332.cfg | 4 + make/custom/efi68k.cfg | 4 + make/custom/erc32.cfg | 4 + make/custom/force386.cfg | 4 + make/custom/gen68302.cfg | 4 + make/custom/gensh1.cfg | 4 + make/custom/go32.cfg | 4 + make/custom/i386ex.cfg | 4 + make/custom/idp.cfg | 4 + make/custom/mvme136.cfg | 4 + make/custom/mvme147.cfg | 4 + make/custom/mvme162.cfg | 4 + make/custom/no_bsp.cfg | 4 + make/custom/ods68302.cfg | 4 + make/custom/p4000.cfg | 4 + make/custom/p4600.cfg | 4 + make/custom/p4650.cfg | 4 + make/custom/papyrus.cfg | 4 + make/custom/portsw.cfg | 4 + make/custom/psim.cfg | 4 + make/custom/simhppa.cfg | 4 + make/target.cfg.in | 1 + 42 files changed, 832 insertions(+), 558 deletions(-) diff --git a/c/Makefile.in b/c/Makefile.in index 6fd1960f5b..d53908a4be 100644 --- a/c/Makefile.in +++ b/c/Makefile.in @@ -29,6 +29,14 @@ SUB_DIRS=build-tools src LIBKA9Q_yes_V = lib/include/ka9q LIBKA9Q = $(LIBKA9Q_$(HAS_KA9Q)_V) +# We only make the install point for the KA9Q header files if it is enabled. +LIBNETWORKING_yes_V = lib/include/networking lib/include/networking/sys \ + lib/include/networking/machine lib/include/networking/rtems \ + lib/include/networking/vm lib/include/networking/net \ + lib/include/networking/netinet lib/include/networking/arpa \ + lib/include/networking/nfs +LIBNETWORKING = $(LIBNETWORKING_$(HAS_NETWORKING)_V) + # We only make the rtems++ install point if it is enabled. LIBRTEMSCPLUSPLUS_yes_V = lib/include/rtems++ LIBRTEMSCPLUSPLUS = $(LIBRTEMSCPLUSPLUS_$(HAS_CPLUSPLUS)_V) @@ -40,6 +48,7 @@ CREATE_DIRS = \ lib/include/netinet lib/include/libc lib/include/libc/sys \ lib/include/motorola lib/include/zilog \ $(LIBKA9Q) \ + $(LIBNETWORKING) \ $(LIBRTEMSCPLUSPLUS) \ bin samples \ tests tests/screens tests/screens/sptests \ diff --git a/c/src/exec/score/cpu/i386/cpu.h b/c/src/exec/score/cpu/i386/cpu.h index 9785730000..7af6bebfad 100644 --- a/c/src/exec/score/cpu/i386/cpu.h +++ b/c/src/exec/score/cpu/i386/cpu.h @@ -64,7 +64,7 @@ extern "C" { #define CPU_IDLE_TASK_IS_FP FALSE #define CPU_USE_DEFERRED_FP_SWITCH TRUE -#define CPU_PROVIDES_IDLE_THREAD_BODY YES +#define CPU_PROVIDES_IDLE_THREAD_BODY TRUE #define CPU_STACK_GROWS_UP FALSE #define CPU_STRUCTURE_ALIGNMENT diff --git a/c/src/lib/Makefile.in b/c/src/lib/Makefile.in index d2d137cddd..7f71ba0b55 100644 --- a/c/src/lib/Makefile.in +++ b/c/src/lib/Makefile.in @@ -15,6 +15,12 @@ include $(RTEMS_ROOT)/make/directory.cfg LIBKA9Q_yes_V = libka9q LIBKA9Q = $(LIBKA9Q_$(HAS_KA9Q)_V) +# We only build the networking library if HAS_NETWORKING was defined +LIBNETWORKING_yes_V = libnetworking +LIBNETWORKING = $(LIBNETWORKING_$(HAS_NETWORKING)_V) +NETWORKING_INCLUDE_yes_V = libnetworking/include +NETWORKING_INCLUDE = $(NETWORKING_INCLUDE_$(HAS_NETWORKING)_V) + # We only build the rtems++ library if HAS_CPLUSPLUS was defined LIBRTEMSCPLUSPLUS_yes_V = librtems++ LIBRTEMSCPLUSPLUS = $(LIBRTEMSCPLUSPLUS_$(HAS_CPLUSPLUS)_V) @@ -22,5 +28,5 @@ LIBRTEMSCPLUSPLUS = $(LIBRTEMSCPLUSPLUS_$(HAS_CPLUSPLUS)_V) # General Hardware API library LIBHWAPI=$(wildcard libhwapi) -SUB_DIRS=start include libmisc libc libcpu libbsp \ - $(LIBKA9Q) $(LIBHWAPI) $(LIBRTEMSCPLUSPLUS) wrapup +SUB_DIRS=start include $(NETWORKING_INCLUDE) libmisc libc libcpu libbsp \ + $(LIBKA9Q) $(LIBNETWORKING) $(LIBHWAPI) $(LIBRTEMSCPLUSPLUS) wrapup diff --git a/c/src/lib/libbsp/m68k/gen68360/Makefile.in b/c/src/lib/libbsp/m68k/gen68360/Makefile.in index b5c08f7542..98cf93acef 100644 --- a/c/src/lib/libbsp/m68k/gen68360/Makefile.in +++ b/c/src/lib/libbsp/m68k/gen68360/Makefile.in @@ -14,11 +14,16 @@ include $(RTEMS_ROOT)/make/directory.cfg SRCS=README # We only build the ka9q device driver if HAS_KA9Q was defined -KA9Q_DRIVER_yes_V = network +KA9Q_DRIVER_yes_V = ka9q_network KA9Q_DRIVER = $(KA9Q_DRIVER_$(HAS_KA9Q)_V) +# We only build the networking device driver if HAS_NETWORKING was defined +NETWORKING_DRIVER_yes_V = network +NETWORKING_DRIVER = $(NETWORKING_DRIVER_$(HAS_NETWORKING)_V) + all: $(SRCS) # wrapup is the one that actually builds and installs the library # from the individual .rel files built in other directories -SUB_DIRS=include start360 startup clock console timer $(KA9Q_DRIVER) wrapup +SUB_DIRS=include start360 startup clock console timer \ + $(KA9Q_DRIVER) $(NETWORKING_DRIVER) wrapup diff --git a/c/src/lib/libbsp/m68k/gen68360/network/Makefile.in b/c/src/lib/libbsp/m68k/gen68360/network/Makefile.in index 262e5be2b2..59728b648d 100644 --- a/c/src/lib/libbsp/m68k/gen68360/network/Makefile.in +++ b/c/src/lib/libbsp/m68k/gen68360/network/Makefile.in @@ -27,7 +27,8 @@ include $(RTEMS_ROOT)/make/leaf.cfg # (OPTIONAL) Add local stuff here using += # -DEFINES += +DEFINES += -D_COMPILING_BSD_KERNEL_ -DKERNEL -DINET -DNFS \ + -DDIAGNOSTIC -DBOOTP_COMPAT CPPFLAGS += CFLAGS += diff --git a/c/src/lib/libbsp/m68k/gen68360/network/network.c b/c/src/lib/libbsp/m68k/gen68360/network/network.c index 5c9440cee6..73ff3fbddb 100644 --- a/c/src/lib/libbsp/m68k/gen68360/network/network.c +++ b/c/src/lib/libbsp/m68k/gen68360/network/network.c @@ -1,5 +1,5 @@ /* - * RTEMS/KA9Q driver for M68360 SCC1 Ethernet + * RTEMS driver for M68360 SCC1 Ethernet * * W. Eric Norum * Saskatchewan Accelerator Laboratory @@ -11,15 +11,20 @@ */ #include #include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include +#include + +#include +#include +#include +#include + +#include + +#include +#include /* * Number of SCCs supported by this driver @@ -36,22 +41,34 @@ #define TX_BD_PER_BUF 4 /* - * RTEMS event used by interrupt handler to signal daemons. - * This must *not* be the same event used by the KA9Q task synchronization. + * RTEMS event used by interrupt handler to signal driver tasks. + * This must not be any of the events used by the network task synchronization. */ #define INTERRUPT_EVENT RTEMS_EVENT_1 /* - * Receive buffer size -- Allow for a full ethernet packet plus a pointer + * RTEMS event used to start transmit daemon. + * This must not be the same as INTERRUPT_EVENT. */ -#define RBUF_SIZE (1520 + sizeof (struct iface *)) +#define START_TRANSMIT_EVENT RTEMS_EVENT_2 + +/* + * Receive buffer size -- Allow for a full ethernet packet including CRC + */ +#define RBUF_SIZE 1520 + +#if (MCLBYTES < RBUF_SIZE) +# error "Driver must have MCLBYTES > RBUF_SIZE" +#endif /* - * Hardware-specific storage + * Per-device data */ -struct m360EnetDriver { +struct scc_softc { + struct arpcom arpcom; struct mbuf **rxMbuf; struct mbuf **txMbuf; + int acceptBroadcast; int rxBdCount; int txBdCount; int txBdHead; @@ -59,8 +76,8 @@ struct m360EnetDriver { int txBdActiveCount; m360BufferDescriptor_t *rxBdBase; m360BufferDescriptor_t *txBdBase; - struct iface *iface; - rtems_id txWaitTid; + rtems_id rxDaemonTid; + rtems_id txDaemonTid; /* * Statistics @@ -84,7 +101,7 @@ struct m360EnetDriver { unsigned long txLostCarrier; unsigned long txRawWait; }; -static struct m360EnetDriver m360EnetDriver[NSCCDRIVER]; +static struct scc_softc scc_softc[NSCCDRIVER]; /* * SCC1 interrupt handler @@ -98,8 +115,8 @@ m360Enet_interrupt_handler (rtems_vector_number v) if ((m360.scc1.sccm & 0x8) && (m360.scc1.scce & 0x8)) { m360.scc1.scce = 0x8; m360.scc1.sccm &= ~0x8; - m360EnetDriver[0].rxInterrupts++; - rtems_event_send (m360EnetDriver[0].iface->rxproc, INTERRUPT_EVENT); + scc_softc[0].rxInterrupts++; + rtems_event_send (scc_softc[0].rxDaemonTid, INTERRUPT_EVENT); } /* @@ -108,8 +125,8 @@ m360Enet_interrupt_handler (rtems_vector_number v) if ((m360.scc1.sccm & 0x12) && (m360.scc1.scce & 0x12)) { m360.scc1.scce = 0x12; m360.scc1.sccm &= ~0x12; - m360EnetDriver[0].txInterrupts++; - rtems_event_send (m360EnetDriver[0].txWaitTid, INTERRUPT_EVENT); + scc_softc[0].txInterrupts++; + rtems_event_send (scc_softc[0].txDaemonTid, INTERRUPT_EVENT); } m360.cisr = 1UL << 30; /* Clear SCC1 interrupt-in-service bit */ } @@ -118,11 +135,11 @@ m360Enet_interrupt_handler (rtems_vector_number v) * Initialize the ethernet hardware */ static void -m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag) +m360Enet_initialize_hardware (struct scc_softc *sc) { int i; unsigned char *hwaddr; - rtems_status_code sc; + rtems_status_code status; rtems_isr_entry old_handler; /* @@ -148,16 +165,18 @@ m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag) /* * Allocate mbuf pointers */ - dp->rxMbuf = mallocw (dp->rxBdCount * sizeof *dp->rxMbuf); - dp->txMbuf = mallocw (dp->txBdCount * sizeof *dp->txMbuf); + sc->rxMbuf = malloc (sc->rxBdCount * sizeof *sc->rxMbuf, M_MBUF, M_NOWAIT); + sc->txMbuf = malloc (sc->txBdCount * sizeof *sc->txMbuf, M_MBUF, M_NOWAIT); + if (!sc->rxMbuf || !sc->txMbuf) + rtems_panic ("No memory for mbuf pointers"); /* * Set receiver and transmitter buffer descriptor bases */ - dp->rxBdBase = M360AllocateBufferDescriptors(dp->rxBdCount); - dp->txBdBase = M360AllocateBufferDescriptors(dp->txBdCount); - m360.scc1p.rbase = (char *)dp->rxBdBase - (char *)&m360; - m360.scc1p.tbase = (char *)dp->txBdBase - (char *)&m360; + sc->rxBdBase = M360AllocateBufferDescriptors(sc->rxBdCount); + sc->txBdBase = M360AllocateBufferDescriptors(sc->txBdCount); + m360.scc1p.rbase = (char *)sc->rxBdBase - (char *)&m360; + m360.scc1p.tbase = (char *)sc->txBdBase - (char *)&m360; /* * Send "Init parameters" command @@ -173,7 +192,7 @@ m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag) /* * Set maximum receive buffer length */ - m360.scc1p.mrblr = 1520; + m360.scc1p.mrblr = RBUF_SIZE; /* * Set CRC parameters @@ -203,8 +222,8 @@ m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag) */ m360.scc1p.un.ethernet.mflr = 1518; m360.scc1p.un.ethernet.minflr = 64; - m360.scc1p.un.ethernet.maxd1 = 1520; - m360.scc1p.un.ethernet.maxd2 = 1520; + m360.scc1p.un.ethernet.maxd1 = RBUF_SIZE; + m360.scc1p.un.ethernet.maxd2 = RBUF_SIZE; /* * Clear group address hash table @@ -217,7 +236,7 @@ m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag) /* * Set our physical address */ - hwaddr = dp->iface->hwaddr; + hwaddr = sc->arpcom.ac_enaddr; m360.scc1p.un.ethernet.paddr_h = (hwaddr[5] << 8) | hwaddr[4]; m360.scc1p.un.ethernet.paddr_m = (hwaddr[3] << 8) | hwaddr[2]; m360.scc1p.un.ethernet.paddr_l = (hwaddr[1] << 8) | hwaddr[0]; @@ -238,18 +257,18 @@ m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag) /* * Set up receive buffer descriptors */ - for (i = 0 ; i < dp->rxBdCount ; i++) - (dp->rxBdBase + i)->status = 0; + for (i = 0 ; i < sc->rxBdCount ; i++) + (sc->rxBdBase + i)->status = 0; /* * Set up transmit buffer descriptors */ - for (i = 0 ; i < dp->txBdCount ; i++) { - (dp->txBdBase + i)->status = 0; - dp->txMbuf[i] = NULL; + for (i = 0 ; i < sc->txBdCount ; i++) { + (sc->txBdBase + i)->status = 0; + sc->txMbuf[i] = NULL; } - dp->txBdHead = dp->txBdTail = 0; - dp->txBdActiveCount = 0; + sc->txBdHead = sc->txBdTail = 0; + sc->txBdActiveCount = 0; /* * Clear any outstanding events @@ -259,12 +278,12 @@ m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag) /* * Set up interrupts */ - sc = rtems_interrupt_catch (m360Enet_interrupt_handler, + status = rtems_interrupt_catch (m360Enet_interrupt_handler, (m360.cicr & 0xE0) | 0x1E, &old_handler); - if (sc != RTEMS_SUCCESSFUL) + if (status != RTEMS_SUCCESSFUL) rtems_panic ("Can't attach M360 SCC1 interrupt handler: %s\n", - rtems_status_text (sc)); + rtems_status_text (status)); m360.scc1.sccm = 0; /* No interrupts unmasked till necessary */ m360.cimr |= (1UL << 30); /* Enable SCC1 interrupt */ @@ -297,7 +316,7 @@ m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag) * Wait 22 bits before looking for start of frame delimiter * Disable full-duplex operation */ - m360.scc1.psmr = 0x880A | (broadcastFlag ? 0 : 0x100); + m360.scc1.psmr = 0x880A | (sc->acceptBroadcast ? 0 : 0x100); /* * Enable the TENA (RTS1*) pin @@ -309,11 +328,6 @@ m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag) m360.pcpar |= 0x1; m360.pcdir &= ~0x1; #endif - - /* - * Enable receiver and transmitter - */ - m360.scc1.gsmr_l = 0x1088003c; } /* @@ -325,16 +339,17 @@ m360Enet_initialize_hardware (struct m360EnetDriver *dp, int broadcastFlag) * ready bit cleared by the CPM". */ static void -m360Enet_retire_tx_bd (struct m360EnetDriver *dp) +m360Enet_retire_tx_bd (struct scc_softc *sc) { rtems_unsigned16 status; int i; int nRetired; + struct mbuf *m, *n; - i = dp->txBdTail; + i = sc->txBdTail; nRetired = 0; - while ((dp->txBdActiveCount != 0) - && (((status = (dp->txBdBase + i)->status) & M360_BD_READY) == 0)) { + while ((sc->txBdActiveCount != 0) + && (((status = (sc->txBdBase + i)->status) & M360_BD_READY) == 0)) { /* * See if anything went wrong */ @@ -351,11 +366,11 @@ m360Enet_retire_tx_bd (struct m360EnetDriver *dp) M360_BD_RETRY_LIMIT | M360_BD_UNDERRUN)) { if (status & M360_BD_LATE_COLLISION) - m360EnetDriver[0].txLateCollision++; + scc_softc[0].txLateCollision++; if (status & M360_BD_RETRY_LIMIT) - m360EnetDriver[0].txRetryLimit++; + scc_softc[0].txRetryLimit++; if (status & M360_BD_UNDERRUN) - m360EnetDriver[0].txUnderrun++; + scc_softc[0].txUnderrun++; /* * Restart the transmitter @@ -363,11 +378,11 @@ m360Enet_retire_tx_bd (struct m360EnetDriver *dp) M360ExecuteRISC (M360_CR_OP_RESTART_TX | M360_CR_CHAN_SCC1); } if (status & M360_BD_DEFER) - m360EnetDriver[0].txDeferred++; + scc_softc[0].txDeferred++; if (status & M360_BD_HEARTBEAT) - m360EnetDriver[0].txHeartbeat++; + scc_softc[0].txHeartbeat++; if (status & M360_BD_CARRIER_LOST) - m360EnetDriver[0].txLostCarrier++; + scc_softc[0].txLostCarrier++; } nRetired++; if (status & M360_BD_LAST) { @@ -375,181 +390,45 @@ m360Enet_retire_tx_bd (struct m360EnetDriver *dp) * A full frame has been transmitted. * Free all the associated buffer descriptors. */ - dp->txBdActiveCount -= nRetired; + sc->txBdActiveCount -= nRetired; while (nRetired) { nRetired--; - free_mbuf (&dp->txMbuf[dp->txBdTail]); - if (++dp->txBdTail == dp->txBdCount) - dp->txBdTail = 0; + m = sc->txMbuf[sc->txBdTail]; + MFREE (m, n); + if (++sc->txBdTail == sc->txBdCount) + sc->txBdTail = 0; } } - if (++i == dp->txBdCount) + if (++i == sc->txBdCount) i = 0; } } -/* - * Send raw packet (caller provides header). - * This code runs in the context of the interface transmit - * task or in the context of the network task. - */ -static int -m360Enet_raw (struct iface *iface, struct mbuf **bpp) -{ - struct m360EnetDriver *dp = &m360EnetDriver[iface->dev]; - struct mbuf *bp; - volatile m360BufferDescriptor_t *firstTxBd, *txBd; - rtems_unsigned16 status; - int nAdded; - - /* - * Fill in some logging data - */ - iface->rawsndcnt++; - iface->lastsent = secclock (); - dump (iface, IF_TRACE_OUT, *bpp); - - /* - * It would not do to have two tasks active in the transmit - * loop at the same time. - * The blocking is simple-minded since the odds of two tasks - * simultaneously attempting to use this code are low. The only - * way that two tasks can try to run here is: - * 1) Task A enters this code and ends up having to - * wait for a transmit buffer descriptor. - * 2) Task B gains control and tries to transmit a packet. - * The RTEMS/KA9Q scheduling semaphore ensures that there - * are no race conditions associated with manipulating the - * txWaitTid variable. - */ - if (dp->txWaitTid) { - dp->txRawWait++; - while (dp->txWaitTid) - rtems_ka9q_ppause (10); - } - - /* - * Free up buffer descriptors - */ - m360Enet_retire_tx_bd (dp); - - /* - * Set up the transmit buffer descriptors. - * No need to pad out short packets since the - * hardware takes care of that automatically. - * No need to copy the packet to a contiguous buffer - * since the hardware is capable of scatter/gather DMA. - */ - bp = *bpp; - nAdded = 0; - txBd = firstTxBd = dp->txBdBase + dp->txBdHead; - for (;;) { - /* - * Wait for buffer descriptor to become available. - */ - if ((dp->txBdActiveCount + nAdded) == dp->txBdCount) { - /* - * Find out who we are - */ - if (dp->txWaitTid == 0) - rtems_task_ident (0, 0, &dp->txWaitTid); - - /* - * Clear old events - */ - m360.scc1.scce = 0x12; - - /* - * Wait for buffer descriptor to become available. - * Note that the buffer descriptors are checked - * *before* * entering the wait loop -- this catches - * the possibility that a buffer descriptor became - * available between the `if' above, and the clearing - * of the event register. - * This is to catch the case where the transmitter - * stops in the middle of a frame -- and only the - * last buffer descriptor in a frame can generate - * an interrupt. - */ - m360Enet_retire_tx_bd (dp); - while ((dp->txBdActiveCount + nAdded) == dp->txBdCount) { - /* - * Unmask TXB (buffer transmitted) and - * TXE (transmitter error) events. - */ - m360.scc1.sccm |= 0x12; - - rtems_ka9q_event_receive (INTERRUPT_EVENT, - RTEMS_WAIT|RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT); - m360Enet_retire_tx_bd (dp); - } - } - - /* - * Fill in the buffer descriptor - */ - txBd->buffer = bp->data; - txBd->length = bp->cnt; - dp->txMbuf[dp->txBdHead] = bp; - - /* - * Don't set the READY flag till the whole packet has been readied. - */ - status = nAdded ? M360_BD_READY : 0; - nAdded++; - if (++dp->txBdHead == dp->txBdCount) { - status |= M360_BD_WRAP; - dp->txBdHead = 0; - } - - /* - * Set the transmit buffer status. - * Break out of the loop if this mbuf is the last in the frame. - */ - if ((bp = bp->next) == NULL) { - status |= M360_BD_PAD | M360_BD_LAST | M360_BD_TX_CRC | M360_BD_INTERRUPT; - txBd->status = status; - firstTxBd->status |= M360_BD_READY; - dp->txBdActiveCount += nAdded; - break; - } - txBd->status = status; - txBd = dp->txBdBase + dp->txBdHead; - } - - /* - * Show that we've finished with the packet - */ - dp->txWaitTid = 0; - *bpp = NULL; - return 0; -} - /* * SCC reader task */ static void -m360Enet_rx (int dev, void *p1, void *p2) +scc_rxDaemon (void *arg) { - struct iface *iface = (struct iface *)p1; - struct m360EnetDriver *dp = (struct m360EnetDriver *)p2; - struct mbuf *bp; + struct scc_softc *sc = (struct scc_softc *)arg; + struct ifnet *ifp = &sc->arpcom.ac_if; + struct mbuf *m; rtems_unsigned16 status; m360BufferDescriptor_t *rxBd; int rxBdIndex; - int continuousCount; /* * Allocate space for incoming packets and start reception */ for (rxBdIndex = 0 ; ;) { - rxBd = dp->rxBdBase + rxBdIndex; - dp->rxMbuf[rxBdIndex] = bp = ambufw (RBUF_SIZE); - bp->data += sizeof (struct iface *); - rxBd->buffer = bp->data; + rxBd = sc->rxBdBase + rxBdIndex; + MGETHDR (m, M_WAIT, MT_DATA); + MCLGET (m, M_WAIT); + m->m_pkthdr.rcvif = ifp; + sc->rxMbuf[rxBdIndex] = m; + rxBd->buffer = mtod (m, void *); rxBd->status = M360_BD_EMPTY | M360_BD_INTERRUPT; - if (++rxBdIndex == dp->rxBdCount) { + if (++rxBdIndex == sc->rxBdCount) { rxBd->status |= M360_BD_WRAP; break; } @@ -558,20 +437,14 @@ m360Enet_rx (int dev, void *p1, void *p2) /* * Input packet handling loop */ - continuousCount = 0; rxBdIndex = 0; for (;;) { - rxBd = dp->rxBdBase + rxBdIndex; + rxBd = sc->rxBdBase + rxBdIndex; /* * Wait for packet if there's not one ready */ if ((status = rxBd->status) & M360_BD_EMPTY) { - /* - * Reset `continuous-packet' count - */ - continuousCount = 0; - /* * Clear old events */ @@ -585,14 +458,17 @@ m360Enet_rx (int dev, void *p1, void *p2) * `if' above, and the clearing of the event register. */ while ((status = rxBd->status) & M360_BD_EMPTY) { + rtems_event_set events; + /* * Unmask RXF (Full frame received) event */ m360.scc1.sccm |= 0x8; - rtems_ka9q_event_receive (INTERRUPT_EVENT, + rtems_bsdnet_event_receive (INTERRUPT_EVENT, RTEMS_WAIT|RTEMS_EVENT_ANY, - RTEMS_NO_TIMEOUT); + RTEMS_NO_TIMEOUT, + &events); } } @@ -610,56 +486,49 @@ m360Enet_rx (int dev, void *p1, void *p2) (M360_BD_LAST | M360_BD_FIRST_IN_FRAME)) { /* - * Pass the packet up the chain - * The mbuf count is reduced to remove - * the frame check sequence at the end - * of the packet. + * Pass the packet up the chain. + * FIXME: Packet filtering hook could be done here. */ - bp = dp->rxMbuf[rxBdIndex]; - bp->cnt = rxBd->length - sizeof (uint32); - net_route (iface, &bp); + struct ether_header *eh; + int s; - /* - * Give the network code a chance to digest the - * packet. This guards against a flurry of - * incoming packets (usually an ARP storm) from - * using up all the available memory. - */ - if (++continuousCount >= dp->rxBdCount) - kwait_null (); + m = sc->rxMbuf[rxBdIndex]; + m->m_len = m->m_pkthdr.len = rxBd->length - + sizeof(rtems_unsigned32) - + sizeof(struct ether_header); + eh = mtod (m, struct ether_header *); + m->m_data += sizeof(struct ether_header); + ether_input (ifp, eh, m); /* * Allocate a new mbuf - * FIXME: It seems to me that it would be better - * if there were some way to limit number of mbufs - * in use by this interface, but I don't see any - * way of determining when the mbuf we pass up - * is freed. */ - dp->rxMbuf[rxBdIndex] = bp = ambufw (RBUF_SIZE); - bp->data += sizeof (struct iface *); - rxBd->buffer = bp->data; + MGETHDR (m, M_WAIT, MT_DATA); + MCLGET (m, M_WAIT); + m->m_pkthdr.rcvif = ifp; + sc->rxMbuf[rxBdIndex] = m; + rxBd->buffer = mtod (m, void *); } else { /* * Something went wrong with the reception */ if (!(status & M360_BD_LAST)) - dp->rxNotLast++; + sc->rxNotLast++; if (!(status & M360_BD_FIRST_IN_FRAME)) - dp->rxNotFirst++; + sc->rxNotFirst++; if (status & M360_BD_LONG) - dp->rxGiant++; + sc->rxGiant++; if (status & M360_BD_NONALIGNED) - dp->rxNonOctet++; + sc->rxNonOctet++; if (status & M360_BD_SHORT) - dp->rxRunt++; + sc->rxRunt++; if (status & M360_BD_CRC_ERROR) - dp->rxBadCRC++; + sc->rxBadCRC++; if (status & M360_BD_OVERRUN) - dp->rxOverrun++; + sc->rxOverrun++; if (status & M360_BD_COLLISION) - dp->rxCollision++; + sc->rxCollision++; } /* @@ -670,230 +539,416 @@ m360Enet_rx (int dev, void *p1, void *p2) /* * Move to next buffer descriptor */ - if (++rxBdIndex == dp->rxBdCount) + if (++rxBdIndex == sc->rxBdCount) rxBdIndex = 0; } } +static void +sendpacket (struct ifnet *ifp, struct mbuf *m) +{ + struct scc_softc *sc = ifp->if_softc; + volatile m360BufferDescriptor_t *firstTxBd, *txBd; + struct mbuf *l = NULL; + rtems_unsigned16 status; + int nAdded; + + /* + * Free up buffer descriptors + */ + m360Enet_retire_tx_bd (sc); + + /* + * Set up the transmit buffer descriptors. + * No need to pad out short packets since the + * hardware takes care of that automatically. + * No need to copy the packet to a contiguous buffer + * since the hardware is capable of scatter/gather DMA. + */ + nAdded = 0; + txBd = firstTxBd = sc->txBdBase + sc->txBdHead; + for (;;) { + /* + * Wait for buffer descriptor to become available. + */ + if ((sc->txBdActiveCount + nAdded) == sc->txBdCount) { + /* + * Clear old events + */ + m360.scc1.scce = 0x12; + + /* + * Wait for buffer descriptor to become available. + * Note that the buffer descriptors are checked + * *before* * entering the wait loop -- this catches + * the possibility that a buffer descriptor became + * available between the `if' above, and the clearing + * of the event register. + * This is to catch the case where the transmitter + * stops in the middle of a frame -- and only the + * last buffer descriptor in a frame can generate + * an interrupt. + */ + m360Enet_retire_tx_bd (sc); + while ((sc->txBdActiveCount + nAdded) == sc->txBdCount) { + rtems_event_set events; + + /* + * Unmask TXB (buffer transmitted) and + * TXE (transmitter error) events. + */ + m360.scc1.sccm |= 0x12; + rtems_bsdnet_event_receive (INTERRUPT_EVENT, + RTEMS_WAIT|RTEMS_EVENT_ANY, + RTEMS_NO_TIMEOUT, + &events); + m360Enet_retire_tx_bd (sc); + } + } + + /* + * Don't set the READY flag till the + * whole packet has been readied. + */ + status = nAdded ? M360_BD_READY : 0; + + /* + * FIXME: Why not deal with empty mbufs at at higher level? + * The IP fragmentation routine in ip_output + * can produce packet fragments with zero length. + * I think that ip_output should be changed to get + * rid of these zero-length mbufs, but for now, + * I'll deal with them here. + */ + if (m->m_len) { + /* + * Fill in the buffer descriptor + */ + txBd->buffer = mtod (m, void *); + txBd->length = m->m_len; + sc->txMbuf[sc->txBdHead] = m; + nAdded++; + if (++sc->txBdHead == sc->txBdCount) { + status |= M360_BD_WRAP; + sc->txBdHead = 0; + } + l = m; + m = m->m_next; + } + else { + /* + * Just toss empty mbufs + */ + struct mbuf *n; + MFREE (m, n); + m = n; + if (l != NULL) + l->m_next = m; + } + + /* + * Set the transmit buffer status. + * Break out of the loop if this mbuf is the last in the frame. + */ + if (m == NULL) { + if (nAdded) { + status |= M360_BD_PAD | M360_BD_LAST | M360_BD_TX_CRC | M360_BD_INTERRUPT; + txBd->status = status; + firstTxBd->status |= M360_BD_READY; + sc->txBdActiveCount += nAdded; + } + break; + } + txBd->status = status; + txBd = sc->txBdBase + sc->txBdHead; + } +} + /* - * Shut down the interface - * FIXME: This is a pretty simple-minded routine. It doesn't worry - * about cleaning up mbufs, shutting down daemons, etc. + * Driver transmit daemon */ -static int -m360Enet_stop (struct iface *iface) +void +scc_txDaemon (void *arg) { + struct scc_softc *sc = (struct scc_softc *)arg; + struct ifnet *ifp = &sc->arpcom.ac_if; + struct mbuf *m; + rtems_event_set events; + + for (;;) { + /* + * Wait for packet + */ + rtems_bsdnet_event_receive (START_TRANSMIT_EVENT, RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &events); + + /* + * Send packets till queue is empty + */ + for (;;) { + /* + * Get the next mbuf chain to transmit. + */ + IF_DEQUEUE(&ifp->if_snd, m); + if (!m) + break; + sendpacket (ifp, m); + } + ifp->if_flags &= ~IFF_OACTIVE; + } +} + +/* + * Send packet (caller provides header). + */ +static void +scc_start (struct ifnet *ifp) +{ + struct scc_softc *sc = ifp->if_softc; + + rtems_event_send (sc->txDaemonTid, START_TRANSMIT_EVENT); + ifp->if_flags |= IFF_OACTIVE; +} + +/* + * Initialize and start the device + */ +static void +scc_init (void *arg) +{ + struct scc_softc *sc = arg; + struct ifnet *ifp = &sc->arpcom.ac_if; + + if (sc->txDaemonTid == 0) { + + /* + * Set up SCC hardware + */ + m360Enet_initialize_hardware (sc); + + /* + * Start driver tasks + */ + sc->txDaemonTid = rtems_bsdnet_newproc ("SCtx", 4096, scc_txDaemon, sc); + sc->rxDaemonTid = rtems_bsdnet_newproc ("SCrx", 4096, scc_rxDaemon, sc); + + } + /* - * Stop the transmitter + * Set flags appropriately */ - M360ExecuteRISC (M360_CR_OP_GR_STOP_TX | M360_CR_CHAN_SCC1); + if (ifp->if_flags & IFF_PROMISC) + m360.scc1.psmr |= 0x200; + else + m360.scc1.psmr &= ~0x200; /* - * Wait for graceful stop - * FIXME: Maybe there should be a watchdog loop around this.... + * Tell the world that we're running. */ - while ((m360.scc1.scce & 0x80) == 0) - continue; + ifp->if_flags |= IFF_RUNNING; + + /* + * Enable receiver and transmitter + */ + m360.scc1.gsmr_l |= 0x30; +} + +/* + * Stop the device + */ +static void +scc_stop (struct scc_softc *sc) +{ + struct ifnet *ifp = &sc->arpcom.ac_if; + + ifp->if_flags &= ~IFF_RUNNING; /* * Shut down receiver and transmitter */ m360.scc1.gsmr_l &= ~0x30; - return 0; } + /* * Show interface statistics */ static void -m360Enet_show (struct iface *iface) +scc_stats (struct scc_softc *sc) { - printf (" Rx Interrupts:%-8lu", m360EnetDriver[0].rxInterrupts); - printf (" Not First:%-8lu", m360EnetDriver[0].rxNotFirst); - printf (" Not Last:%-8lu\n", m360EnetDriver[0].rxNotLast); - printf (" Giant:%-8lu", m360EnetDriver[0].rxGiant); - printf (" Runt:%-8lu", m360EnetDriver[0].rxRunt); - printf (" Non-octet:%-8lu\n", m360EnetDriver[0].rxNonOctet); - printf (" Bad CRC:%-8lu", m360EnetDriver[0].rxBadCRC); - printf (" Overrun:%-8lu", m360EnetDriver[0].rxOverrun); - printf (" Collision:%-8lu\n", m360EnetDriver[0].rxCollision); + printf (" Rx Interrupts:%-8lu", sc->rxInterrupts); + printf (" Not First:%-8lu", sc->rxNotFirst); + printf (" Not Last:%-8lu\n", sc->rxNotLast); + printf (" Giant:%-8lu", sc->rxGiant); + printf (" Runt:%-8lu", sc->rxRunt); + printf (" Non-octet:%-8lu\n", sc->rxNonOctet); + printf (" Bad CRC:%-8lu", sc->rxBadCRC); + printf (" Overrun:%-8lu", sc->rxOverrun); + printf (" Collision:%-8lu\n", sc->rxCollision); printf (" Discarded:%-8lu\n", (unsigned long)m360.scc1p.un.ethernet.disfc); - printf (" Tx Interrupts:%-8lu", m360EnetDriver[0].txInterrupts); - printf (" Deferred:%-8lu", m360EnetDriver[0].txDeferred); - printf (" Missed Hearbeat:%-8lu\n", m360EnetDriver[0].txHeartbeat); - printf (" No Carrier:%-8lu", m360EnetDriver[0].txLostCarrier); - printf ("Retransmit Limit:%-8lu", m360EnetDriver[0].txRetryLimit); - printf (" Late Collision:%-8lu\n", m360EnetDriver[0].txLateCollision); - printf (" Underrun:%-8lu", m360EnetDriver[0].txUnderrun); - printf (" Raw output wait:%-8lu\n", m360EnetDriver[0].txRawWait); + printf (" Tx Interrupts:%-8lu", sc->txInterrupts); + printf (" Deferred:%-8lu", sc->txDeferred); + printf (" Missed Hearbeat:%-8lu\n", sc->txHeartbeat); + printf (" No Carrier:%-8lu", sc->txLostCarrier); + printf ("Retransmit Limit:%-8lu", sc->txRetryLimit); + printf (" Late Collision:%-8lu\n", sc->txLateCollision); + printf (" Underrun:%-8lu", sc->txUnderrun); + printf (" Raw output wait:%-8lu\n", sc->txRawWait); +} + +/* + * Driver ioctl handler + */ +static int +scc_ioctl (struct ifnet *ifp, int command, caddr_t data) +{ + struct ifaddr *ifa = (struct ifaddr *)data; + struct scc_softc *sc = ifp->if_softc; + struct ifreq *ifr = (struct ifreq *) data; + int error = 0; + + switch (command) { + case SIOCGIFADDR: + case SIOCSIFADDR: + ether_ioctl (ifp, command, data); + break; + + case SIOCSIFFLAGS: + switch (ifp->if_flags & (IFF_UP | IFF_RUNNING)) { + case IFF_RUNNING: + scc_stop (sc); + break; + + case IFF_UP: + scc_init (sc); + break; + + case IFF_UP | IFF_RUNNING: + scc_stop (sc); + scc_init (sc); + break; + + default: + break; + } + break; + + case SIO_RTEMS_SHOW_STATS: + scc_stats (sc); + break; + + /* + * FIXME: All sorts of multicast commands need to be added here! + */ + default: + error = EINVAL; + break; + } + return error; } /* * Attach an SCC driver to the system - * This is the only `extern' function in the driver. - * - * argv[0]: interface label, e.g., "rtems" - * The remainder of the arguemnts are key/value pairs: - * mtu ## -- maximum transmission unit, default 1500 - * broadcast y/n -- accept or ignore broadcast packets, default yes - * rbuf ## -- Set number of receive buffer descriptors - * rbuf ## -- Set number of transmit buffer descriptors - * ip ###.###.###.### -- IP address - * ether ##:##:##:##:##:## -- Ethernet address - * ether prom -- Get Ethernet address from bootstrap PROM */ int -rtems_ka9q_driver_attach (int argc, char *argv[], void *p) +rtems_scc1_driver_attach (struct rtems_bsdnet_ifconfig *config) { - struct iface *iface; - struct m360EnetDriver *dp; - char *cp; + struct scc_softc *sc; + struct ifnet *ifp; + int mtu; int i; - int argIndex; - int broadcastFlag; - char cbuf[30]; /* * Find a free driver */ for (i = 0 ; i < NSCCDRIVER ; i++) { - if (m360EnetDriver[i].iface == NULL) + sc = &scc_softc[i]; + ifp = &sc->arpcom.ac_if; + if (ifp->if_softc == NULL) break; } if (i >= NSCCDRIVER) { printf ("Too many SCC drivers.\n"); - return -1; - } - if (if_lookup (argv[0]) != NULL) { - printf ("Interface %s already exists\n", argv[0]); - return -1; + return 0; } - dp = &m360EnetDriver[i]; - - /* - * Create an inteface descriptor - */ - iface = callocw (1, sizeof *iface); - iface->name = strdup (argv[0]); - - /* - * Set default values - */ - broadcastFlag = 1; - dp->txWaitTid = 0; - dp->rxBdCount = RX_BUF_COUNT; - dp->txBdCount = TX_BUF_COUNT * TX_BD_PER_BUF; - iface->mtu = 1500; - iface->addr = Ip_addr; - iface->hwaddr = mallocw (EADDR_LEN); - memset (iface->hwaddr, 0x08, EADDR_LEN); /* - * Parse arguments + * Process options */ - for (argIndex = 1 ; argIndex < (argc - 1) ; argIndex++) { - if (strcmp ("mtu", argv[argIndex]) == 0) { - iface->mtu = atoi (argv[++argIndex]); - } - else if (strcmp ("broadcast", argv[argIndex]) == 0) { - if (*argv[++argIndex] == 'n') - broadcastFlag = 0; - } - else if (strcmp ("rbuf", argv[argIndex]) == 0) { - dp->rxBdCount = atoi (argv[++argIndex]); - } - else if (strcmp ("tbuf", argv[argIndex]) == 0) { - dp->txBdCount = atoi (argv[++argIndex]) * TX_BD_PER_BUF; - } - else if (strcmp ("ip", argv[argIndex]) == 0) { - iface->addr = resolve (argv[++argIndex]); - } - else if (strcmp ("ether", argv[argIndex]) == 0) { - argIndex++; - if (strcmp (argv[argIndex], "prom") == 0) { - /* - * The first 4 bytes of the bootstrap prom - * contain the value loaded into the stack - * pointer as part of the CPU32's hardware - * reset exception handler. The following - * 4 bytes contain the value loaded into the - * program counter. The boards' Ethernet - * address is stored in the six bytes - * immediately preceding this initial - * program counter value. - * - * See start360/start360.s. - */ - extern void *_RomBase; /* From linkcmds */ - const unsigned long *ExceptionVectors; - const unsigned char *entryPoint; + if (config->hardware_address) { + memcpy (sc->arpcom.ac_enaddr, config->hardware_address, ETHER_ADDR_LEN); + } + else { + /* + * The first 4 bytes of the bootstrap prom + * contain the value loaded into the stack + * pointer as part of the CPU32's hardware + * reset exception handler. The following + * 4 bytes contain the value loaded into the + * program counter. The boards' Ethernet + * address is stored in the six bytes + * immediately preceding this initial + * program counter value. + * + * See start360/start360.s. + */ + extern void *_RomBase; /* From linkcmds */ + const unsigned long *ExceptionVectors; + const unsigned char *entryPoint; - /* - * Sanity check -- assume entry point must be - * within 1 MByte of beginning of boot ROM. - */ - ExceptionVectors = (const unsigned long *)&_RomBase; - entryPoint = (const unsigned char *)ExceptionVectors[1]; - if (((unsigned long)entryPoint - (unsigned long)ExceptionVectors) - >= (1 * 1024 * 1024)) { - printf ("Warning -- Ethernet address can not be found in bootstrap PROM.\n"); - iface->hwaddr[0] = 0x08; - iface->hwaddr[1] = 0xF3; - iface->hwaddr[2] = 0x3E; - iface->hwaddr[3] = 0xC2; - iface->hwaddr[4] = 0xE7; - iface->hwaddr[5] = 0x08; - } - else { - memcpy (iface->hwaddr, entryPoint - 6, 6); - } - } - else { - gether (iface->hwaddr, argv[argIndex]); - } + /* + * Sanity check -- assume entry point must be + * within 1 MByte of beginning of boot ROM. + */ + ExceptionVectors = (const unsigned long *)&_RomBase; + entryPoint = (const unsigned char *)ExceptionVectors[1]; + if (((unsigned long)entryPoint - (unsigned long)ExceptionVectors) + >= (1 * 1024 * 1024)) { + printf ("Warning -- Ethernet address can not be found in bootstrap PROM.\n"); + sc->arpcom.ac_enaddr[0] = 0x08; + sc->arpcom.ac_enaddr[1] = 0xF3; + sc->arpcom.ac_enaddr[2] = 0x3E; + sc->arpcom.ac_enaddr[3] = 0xC2; + sc->arpcom.ac_enaddr[4] = 0x7E; + sc->arpcom.ac_enaddr[5] = 0x38; } else { - printf ("Argument %d (%s) is invalid.\n", argIndex, argv[argIndex]); - return -1; + memcpy (sc->arpcom.ac_enaddr, entryPoint - ETHER_ADDR_LEN, ETHER_ADDR_LEN); } } - printf ("Ethernet address: %s\n", pether (cbuf, iface->hwaddr)); - - /* - * Fill in remainder of interface configuration - */ - iface->dev = i; - iface->raw = m360Enet_raw; - iface->stop = m360Enet_stop; - iface->show = m360Enet_show; - dp->iface = iface; - setencap (iface, "Ethernet"); - - /* - * Set up SCC hardware - */ - m360Enet_initialize_hardware (dp, broadcastFlag); - - /* - * Chain onto list of interfaces - */ - iface->next = Ifaces; - Ifaces = iface; - - /* - * Start I/O daemons - */ - cp = if_name (iface, " tx"); - iface->txproc = newproc (cp, 1024, if_tx, iface->dev, iface, NULL, 0); - free (cp); - cp = if_name (iface, " rx"); - iface->rxproc = newproc (cp, 1024, m360Enet_rx, iface->dev, iface, dp, 0); - free (cp); - return 0; -} - -/* - * FIXME: There should be an ioctl routine to allow things like - * enabling/disabling reception of broadcast packets. - */ + if (config->mtu) + mtu = config->mtu; + else + mtu = ETHERMTU; + if (config->rbuf_count) + sc->rxBdCount = config->rbuf_count; + else + sc->rxBdCount = RX_BUF_COUNT; + if (config->xbuf_count) + sc->txBdCount = config->xbuf_count; + else + sc->txBdCount = TX_BUF_COUNT * TX_BD_PER_BUF; + sc->acceptBroadcast = !config->ignore_broadcast; + + /* + * Set up network interface values + */ + ifp->if_softc = sc; + ifp->if_unit = i + 1; + ifp->if_name = "scc"; + ifp->if_mtu = mtu; + ifp->if_init = scc_init; + ifp->if_ioctl = scc_ioctl; + ifp->if_start = scc_start; + ifp->if_output = ether_output; + ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX; + if (ifp->if_snd.ifq_maxlen == 0) + ifp->if_snd.ifq_maxlen = ifqmaxlen; + + /* + * Attach the interface + */ + if_attach (ifp); + ether_ifattach (ifp); + return 1; +}; diff --git a/c/src/lib/libbsp/m68k/gen68360/wrapup/Makefile.in b/c/src/lib/libbsp/m68k/gen68360/wrapup/Makefile.in index 3f150338dd..de02880710 100644 --- a/c/src/lib/libbsp/m68k/gen68360/wrapup/Makefile.in +++ b/c/src/lib/libbsp/m68k/gen68360/wrapup/Makefile.in @@ -9,10 +9,14 @@ RTEMS_ROOT = @top_srcdir@ PROJECT_ROOT = @PROJECT_ROOT@ # We only build the ka9q device driver if HAS_KA9Q was defined -KA9Q_DRIVER_yes_V = network +KA9Q_DRIVER_yes_V = ka9q_network KA9Q_DRIVER = $(KA9Q_DRIVER_$(HAS_KA9Q)_V) -BSP_PIECES=startup clock console timer $(KA9Q_DRIVER) +# We only build the networking device driver if HAS_NETWORKING was defined +NETWORKING_DRIVER_yes_V = network +NETWORKING_DRIVER = $(NETWORKING_DRIVER_$(HAS_NETWORKING)_V) + +BSP_PIECES=startup clock console timer $(KA9Q_DRIVER) $(NETWORKING_DRIVER) CPU_PIECES= GENERIC_PIECES= diff --git a/c/src/lib/wrapup/Makefile.in b/c/src/lib/wrapup/Makefile.in index bef0aa637b..52042c5e6e 100644 --- a/c/src/lib/wrapup/Makefile.in +++ b/c/src/lib/wrapup/Makefile.in @@ -19,6 +19,7 @@ SRCS=$(wildcard $(PROJECT_RELEASE)/lib/libbsp$(LIB_VARIANT).a) \ $(PROJECT_RELEASE)/lib/librtems$(LIB_VARIANT).a \ $(wildcard $(PROJECT_RELEASE)/lib/libposix$(LIB_VARIANT).a) \ $(wildcard $(PROJECT_RELEASE)/lib/libka9q$(LIB_VARIANT).a) \ + $(wildcard $(PROJECT_RELEASE)/lib/libnetworking$(LIB_VARIANT).a) \ $(wildcard $(PROJECT_RELEASE)/lib/libcpu$(LIB_VARIANT).a) \ $(PROJECT_RELEASE)/lib/libcsupport$(LIB_VARIANT).a \ $(PROJECT_RELEASE)/lib/libmisc$(LIB_VARIANT).a \ diff --git a/c/src/make/compilers/gcc-target-default.cfg b/c/src/make/compilers/gcc-target-default.cfg index 359ae1a295..ee533743e8 100644 --- a/c/src/make/compilers/gcc-target-default.cfg +++ b/c/src/make/compilers/gcc-target-default.cfg @@ -22,6 +22,10 @@ CPLUS_CPPFLAGS=$(CFLAGS) $(XCPPFLAGS) INCLUDE_KA9Q_yes_V = -I$(PROJECT_INCLUDE)/ka9q INCLUDE_KA9Q = $(INCLUDE_KA9Q_$(HAS_KA9Q)_V) +# We only include the header files for networking if it is enabled. +INCLUDE_NETWORKING_yes_V = -I$(PROJECT_INCLUDE)/networking +INCLUDE_NETWORKING = $(INCLUDE_NETWORKING_$(HAS_NETWORKING)_V) + ifeq ($(RTEMS_USE_GCC272),yes) ifeq ($(RTEMS_CROSS_TARGET),no) @@ -33,6 +37,7 @@ endif CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \ -I$(PROJECT_INCLUDE) \ $(INCLUDE_KA9Q) \ + $(INCLUDE_NETWORKING) \ $(RTEMS_LIBC_INCLUDES) $(DEFINES) ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g \ @@ -46,6 +51,7 @@ GCC_INCLUDE=$(shell $(CC) $(CPU_CFLAGS) -print-file-name=include $(GCCSED)) CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \ -nostdinc -I$(PROJECT_INCLUDE) \ $(INCLUDE_KA9Q) \ + $(INCLUDE_NETWORKING) \ -I$(RTEMS_LIBC_DIR)/include -I$(GCC_INCLUDE) $(DEFINES) ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g \ @@ -65,7 +71,7 @@ endif else CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \ -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems \ - $(INCLUDE_KA9Q) $(DEFINES) + $(INCLUDE_KA9Q) $(INCLUDE_NETWORKING) $(DEFINES) ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g -I$(srcdir) \ -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems $(DEFINES) diff --git a/c/src/wrapup/Makefile.in b/c/src/wrapup/Makefile.in index bef0aa637b..52042c5e6e 100644 --- a/c/src/wrapup/Makefile.in +++ b/c/src/wrapup/Makefile.in @@ -19,6 +19,7 @@ SRCS=$(wildcard $(PROJECT_RELEASE)/lib/libbsp$(LIB_VARIANT).a) \ $(PROJECT_RELEASE)/lib/librtems$(LIB_VARIANT).a \ $(wildcard $(PROJECT_RELEASE)/lib/libposix$(LIB_VARIANT).a) \ $(wildcard $(PROJECT_RELEASE)/lib/libka9q$(LIB_VARIANT).a) \ + $(wildcard $(PROJECT_RELEASE)/lib/libnetworking$(LIB_VARIANT).a) \ $(wildcard $(PROJECT_RELEASE)/lib/libcpu$(LIB_VARIANT).a) \ $(PROJECT_RELEASE)/lib/libcsupport$(LIB_VARIANT).a \ $(PROJECT_RELEASE)/lib/libmisc$(LIB_VARIANT).a \ diff --git a/configure b/configure index 0e23719f40..2e0f2886ac 100644 --- a/configure +++ b/configure @@ -23,6 +23,9 @@ ac_help="$ac_help \ --enable-ka9q enable KA9Q TCP/IP stack" ac_help="$ac_help +\ + --enable-networking enable TCP/IP stack" +ac_help="$ac_help \ --enable-rtems-inlines enable RTEMS inline functions (use macros)" ac_help="$ac_help @@ -558,7 +561,7 @@ fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:562: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:565: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -631,7 +634,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:635: checking host system type" >&5 +echo "configure:638: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -652,7 +655,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:656: checking target system type" >&5 +echo "configure:659: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -670,7 +673,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:674: checking build system type" >&5 +echo "configure:677: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -738,7 +741,21 @@ case "${enableval}" in *) { echo "configure: error: bad value ${enableval} for enable-ka9q option" 1>&2; exit 1; } ;; esac else - RTEMS_HAS_KA9Q=yes + RTEMS_HAS_KA9Q=no +fi + + +# Check whether --enable-networking or --disable-networking was given. +if test "${enable_networking+set}" = set; then + enableval="$enable_networking" + \ +case "${enableval}" in + yes) RTEMS_HAS_NETWORKING=yes ;; + no) RTEMS_HAS_NETWORKING=no ;; + *) { echo "configure: error: bad value ${enableval} for enable-networking option" 1>&2; exit 1; } ;; +esac +else + RTEMS_HAS_NETWORKING=yes fi @@ -823,7 +840,7 @@ RTEMS_PREFIX=${target_cpu}-${target_vendor} # Extract the first word of "cat", so it can be a program name with args. set dummy cat; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:827: checking for $ac_word" >&5 +echo "configure:844: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_CAT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -854,7 +871,7 @@ fi # Extract the first word of "rm", so it can be a program name with args. set dummy rm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:858: checking for $ac_word" >&5 +echo "configure:875: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_RM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -885,7 +902,7 @@ fi # Extract the first word of "cp", so it can be a program name with args. set dummy cp; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:889: checking for $ac_word" >&5 +echo "configure:906: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_CP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -916,7 +933,7 @@ fi # Extract the first word of "mv", so it can be a program name with args. set dummy mv; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:920: checking for $ac_word" >&5 +echo "configure:937: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MV'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -947,7 +964,7 @@ fi # Extract the first word of "ln", so it can be a program name with args. set dummy ln; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:951: checking for $ac_word" >&5 +echo "configure:968: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_LN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -976,7 +993,7 @@ else fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:980: checking whether ln -s works" >&5 +echo "configure:997: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -999,7 +1016,7 @@ fi # Extract the first word of "chmod", so it can be a program name with args. set dummy chmod; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1003: checking for $ac_word" >&5 +echo "configure:1020: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_CHMOD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1030,7 +1047,7 @@ fi # Extract the first word of "sort", so it can be a program name with args. set dummy sort; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1034: checking for $ac_word" >&5 +echo "configure:1051: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SORT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1069,7 +1086,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1073: checking for a BSD compatible install" >&5 +echo "configure:1090: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1122,7 +1139,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Extract the first word of "mkdir", so it can be a program name with args. set dummy mkdir; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1126: checking for $ac_word" >&5 +echo "configure:1143: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MKDIR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1154,7 +1171,7 @@ fi echo $ac_n "checking for working $MKDIR -m 0755""... $ac_c" 1>&6 -echo "configure:1158: checking for working $MKDIR -m 0755" >&5 +echo "configure:1175: checking for working $MKDIR -m 0755" >&5 if eval "test \"`echo '$''{'rtems_cv_prog_MKDIR_P'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1171,7 +1188,7 @@ echo "$ac_t""$rtems_cv_prog_MKDIR_M" 1>&6 echo $ac_n "checking for working $MKDIR -p""... $ac_c" 1>&6 -echo "configure:1175: checking for working $MKDIR -p" >&5 +echo "configure:1192: checking for working $MKDIR -p" >&5 if eval "test \"`echo '$''{'rtems_cv_prog_mkdir_p'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1191,7 +1208,7 @@ test "$rtems_cv_prog_MKDIR_M" = "yes" && MKDIR="$MKDIR -m 0755" # Extract the first word of "touch", so it can be a program name with args. set dummy touch; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1195: checking for $ac_word" >&5 +echo "configure:1212: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TOUCH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1222,7 +1239,7 @@ fi # Extract the first word of "cmp", so it can be a program name with args. set dummy cmp; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1226: checking for $ac_word" >&5 +echo "configure:1243: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_CMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1254,7 +1271,7 @@ fi # Extract the first word of "sed", so it can be a program name with args. set dummy sed; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1258: checking for $ac_word" >&5 +echo "configure:1275: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SED'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1287,7 +1304,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1291: checking for $ac_word" >&5 +echo "configure:1308: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_M4'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1324,7 +1341,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1328: checking for $ac_word" >&5 +echo "configure:1345: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1402,7 +1419,7 @@ case "${target}" in ;; *) echo $ac_n "checking rtems target cpu""... $ac_c" 1>&6 -echo "configure:1406: checking rtems target cpu" >&5 +echo "configure:1423: checking rtems target cpu" >&5 target_cpu=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'` echo "$ac_t""$target_cpu" 1>&6 @@ -1421,7 +1438,7 @@ fi # Is this a supported CPU? echo $ac_n "checking if cpu $target_cpu is supported""... $ac_c" 1>&6 -echo "configure:1425: checking if cpu $target_cpu is supported" >&5 +echo "configure:1442: checking if cpu $target_cpu is supported" >&5 if test -d "$srcdir/c/src/exec/score/cpu/$target_cpu"; then echo "$ac_t""yes" 1>&6 makefiles="$makefiles c/src/exec/score/cpu/$target_cpu/Makefile" @@ -1446,7 +1463,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1450: checking for $ac_word" >&5 +echo "configure:1467: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_CC_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1486,7 +1503,7 @@ rtems_save_CFLAGS=$CFLAGS CC=$CC_FOR_TARGET echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1490: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1507: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1496,11 +1513,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1520,12 +1537,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1524: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1541: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1529: checking whether we are using GNU C" >&5 +echo "configure:1546: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1534,7 +1551,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1538: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1555: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1549,7 +1566,7 @@ if test $ac_cv_prog_gcc = yes; then ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1553: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1570: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1591,7 +1608,7 @@ unset ac_cv_prog_cc_cross echo $ac_n "checking whether $CC_FOR_TARGET accepts -specs""... $ac_c" 1>&6 -echo "configure:1595: checking whether $CC_FOR_TARGET accepts -specs" >&5 +echo "configure:1612: checking whether $CC_FOR_TARGET accepts -specs" >&5 if eval "test \"`echo '$''{'rtems_cv_gcc_specs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1612,7 +1629,7 @@ echo "$ac_t""$rtems_cv_gcc_specs" 1>&6 echo $ac_n "checking whether $CC_FOR_TARGET accepts --pipe""... $ac_c" 1>&6 -echo "configure:1616: checking whether $CC_FOR_TARGET accepts --pipe" >&5 +echo "configure:1633: checking whether $CC_FOR_TARGET accepts --pipe" >&5 if eval "test \"`echo '$''{'rtems_cv_gcc_pipe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1653,7 +1670,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1657: checking for $ac_word" >&5 +echo "configure:1674: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_CXX_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1693,7 +1710,7 @@ rtems_save_CXXFLAGS=$CXXFLAGS CXX=$CXX_FOR_TARGET echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1697: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 +echo "configure:1714: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1703,11 +1720,11 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1733,12 +1750,12 @@ if test $ac_cv_prog_cxx_works = no; then { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1737: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1754: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 -echo "configure:1742: checking whether we are using GNU C++" >&5 +echo "configure:1759: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1747,7 +1764,7 @@ else yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1768: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no @@ -1762,7 +1779,7 @@ if test $ac_cv_prog_gxx = yes; then ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -echo "configure:1766: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:1783: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1816,7 +1833,7 @@ fi echo $ac_n "checking target's ar""... $ac_c" 1>&6 -echo "configure:1820: checking target's ar" >&5 +echo "configure:1837: checking target's ar" >&5 if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1849,7 +1866,7 @@ else # will override the environment variable, which isn't what the user # intends echo $ac_n "checking whether environment variable AR_FOR_TARGET is an absolute path""... $ac_c" 1>&6 -echo "configure:1853: checking whether environment variable AR_FOR_TARGET is an absolute path" >&5 +echo "configure:1870: checking whether environment variable AR_FOR_TARGET is an absolute path" >&5 case "$AR_FOR_TARGET" in /*) # valid echo "$ac_t"""yes"" 1>&6 @@ -1866,7 +1883,7 @@ echo "configure:1853: checking whether environment variable AR_FOR_TARGET is an # Extract the first word of ""$program_prefix"ar", so it can be a program name with args. set dummy "$program_prefix"ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1870: checking for $ac_word" >&5 +echo "configure:1887: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1899,7 +1916,7 @@ fi echo $ac_n "checking target's as""... $ac_c" 1>&6 -echo "configure:1903: checking target's as" >&5 +echo "configure:1920: checking target's as" >&5 if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1932,7 +1949,7 @@ else # will override the environment variable, which isn't what the user # intends echo $ac_n "checking whether environment variable AS_FOR_TARGET is an absolute path""... $ac_c" 1>&6 -echo "configure:1936: checking whether environment variable AS_FOR_TARGET is an absolute path" >&5 +echo "configure:1953: checking whether environment variable AS_FOR_TARGET is an absolute path" >&5 case "$AS_FOR_TARGET" in /*) # valid echo "$ac_t"""yes"" 1>&6 @@ -1949,7 +1966,7 @@ echo "configure:1936: checking whether environment variable AS_FOR_TARGET is an # Extract the first word of ""$program_prefix"as", so it can be a program name with args. set dummy "$program_prefix"as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1953: checking for $ac_word" >&5 +echo "configure:1970: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1982,7 +1999,7 @@ fi echo $ac_n "checking target's ld""... $ac_c" 1>&6 -echo "configure:1986: checking target's ld" >&5 +echo "configure:2003: checking target's ld" >&5 if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2015,7 +2032,7 @@ else # will override the environment variable, which isn't what the user # intends echo $ac_n "checking whether environment variable LD_FOR_TARGET is an absolute path""... $ac_c" 1>&6 -echo "configure:2019: checking whether environment variable LD_FOR_TARGET is an absolute path" >&5 +echo "configure:2036: checking whether environment variable LD_FOR_TARGET is an absolute path" >&5 case "$LD_FOR_TARGET" in /*) # valid echo "$ac_t"""yes"" 1>&6 @@ -2032,7 +2049,7 @@ echo "configure:2019: checking whether environment variable LD_FOR_TARGET is an # Extract the first word of ""$program_prefix"ld", so it can be a program name with args. set dummy "$program_prefix"ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2036: checking for $ac_word" >&5 +echo "configure:2053: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2065,7 +2082,7 @@ fi echo $ac_n "checking target's nm""... $ac_c" 1>&6 -echo "configure:2069: checking target's nm" >&5 +echo "configure:2086: checking target's nm" >&5 if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2098,7 +2115,7 @@ else # will override the environment variable, which isn't what the user # intends echo $ac_n "checking whether environment variable NM_FOR_TARGET is an absolute path""... $ac_c" 1>&6 -echo "configure:2102: checking whether environment variable NM_FOR_TARGET is an absolute path" >&5 +echo "configure:2119: checking whether environment variable NM_FOR_TARGET is an absolute path" >&5 case "$NM_FOR_TARGET" in /*) # valid echo "$ac_t"""yes"" 1>&6 @@ -2115,7 +2132,7 @@ echo "configure:2102: checking whether environment variable NM_FOR_TARGET is an # Extract the first word of ""$program_prefix"nm", so it can be a program name with args. set dummy "$program_prefix"nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2119: checking for $ac_word" >&5 +echo "configure:2136: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2149,7 +2166,7 @@ fi echo $ac_n "checking target's ranlib""... $ac_c" 1>&6 -echo "configure:2153: checking target's ranlib" >&5 +echo "configure:2170: checking target's ranlib" >&5 if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2182,7 +2199,7 @@ else # will override the environment variable, which isn't what the user # intends echo $ac_n "checking whether environment variable RANLIB_FOR_TARGET is an absolute path""... $ac_c" 1>&6 -echo "configure:2186: checking whether environment variable RANLIB_FOR_TARGET is an absolute path" >&5 +echo "configure:2203: checking whether environment variable RANLIB_FOR_TARGET is an absolute path" >&5 case "$RANLIB_FOR_TARGET" in /*) # valid echo "$ac_t"""yes"" 1>&6 @@ -2199,7 +2216,7 @@ echo "configure:2186: checking whether environment variable RANLIB_FOR_TARGET is # Extract the first word of ""$program_prefix"ranlib", so it can be a program name with args. set dummy "$program_prefix"ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2203: checking for $ac_word" >&5 +echo "configure:2220: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2234,7 +2251,7 @@ fi # ranlib wasn't found; check if ar -s is available echo $ac_n "checking whether $AR_FOR_TARGET -s works""... $ac_c" 1>&6 -echo "configure:2238: checking whether $AR_FOR_TARGET -s works" >&5 +echo "configure:2255: checking whether $AR_FOR_TARGET -s works" >&5 if eval "test \"`echo '$''{'rtems_cv_AR_FOR_TARGET_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2243,8 +2260,8 @@ cat > conftest.$ac_ext <&5; (eval $ac_try) 2>&5; }; } \ - && { ac_try='$AR_FOR_TARGET -sr conftest.a conftest.o'; { (eval echo configure:2248: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \ +if { ac_try='$CC_FOR_TARGET -o conftest.o -c conftest.$ac_ext'; { (eval echo configure:2264: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \ + && { ac_try='$AR_FOR_TARGET -sr conftest.a conftest.o'; { (eval echo configure:2265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \ && test -s conftest.a ; \ then rtems_cv_AR_FOR_TARGET_S="yes" @@ -2269,7 +2286,7 @@ echo "$ac_t""$rtems_cv_AR_FOR_TARGET_S" 1>&6 echo $ac_n "checking target's objcopy""... $ac_c" 1>&6 -echo "configure:2273: checking target's objcopy" >&5 +echo "configure:2290: checking target's objcopy" >&5 if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2302,7 +2319,7 @@ else # will override the environment variable, which isn't what the user # intends echo $ac_n "checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path""... $ac_c" 1>&6 -echo "configure:2306: checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path" >&5 +echo "configure:2323: checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path" >&5 case "$OBJCOPY_FOR_TARGET" in /*) # valid echo "$ac_t"""yes"" 1>&6 @@ -2319,7 +2336,7 @@ echo "configure:2306: checking whether environment variable OBJCOPY_FOR_TARGET i # Extract the first word of ""$program_prefix"objcopy", so it can be a program name with args. set dummy "$program_prefix"objcopy; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2323: checking for $ac_word" >&5 +echo "configure:2340: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2352,7 +2369,7 @@ fi echo $ac_n "checking target's size""... $ac_c" 1>&6 -echo "configure:2356: checking target's size" >&5 +echo "configure:2373: checking target's size" >&5 if eval "test \"`echo '$''{'ac_cv_path_SIZE_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2385,7 +2402,7 @@ else # will override the environment variable, which isn't what the user # intends echo $ac_n "checking whether environment variable SIZE_FOR_TARGET is an absolute path""... $ac_c" 1>&6 -echo "configure:2389: checking whether environment variable SIZE_FOR_TARGET is an absolute path" >&5 +echo "configure:2406: checking whether environment variable SIZE_FOR_TARGET is an absolute path" >&5 case "$SIZE_FOR_TARGET" in /*) # valid echo "$ac_t"""yes"" 1>&6 @@ -2402,7 +2419,7 @@ echo "configure:2389: checking whether environment variable SIZE_FOR_TARGET is a # Extract the first word of ""$program_prefix"size", so it can be a program name with args. set dummy "$program_prefix"size; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2406: checking for $ac_word" >&5 +echo "configure:2423: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SIZE_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2438,7 +2455,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2442: checking for $ac_word" >&5 +echo "configure:2459: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2467,7 +2484,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2471: checking for $ac_word" >&5 +echo "configure:2488: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2515,7 +2532,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2519: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2536: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -2525,11 +2542,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2549,12 +2566,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2553: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2570: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:2558: checking whether we are using GNU C" >&5 +echo "configure:2575: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2563,7 +2580,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2567: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2584: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2578,7 +2595,7 @@ if test $ac_cv_prog_gcc = yes; then ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2582: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2599: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2607,19 +2624,19 @@ fi echo $ac_n "checking for Cygwin32 environment""... $ac_c" 1>&6 -echo "configure:2611: checking for Cygwin32 environment" >&5 +echo "configure:2628: checking for Cygwin32 environment" >&5 if eval "test \"`echo '$''{'rtems_cv_cygwin32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* rtems_cv_cygwin32=yes else @@ -2637,7 +2654,7 @@ CYGWIN32= test "$rtems_cv_cygwin32" = yes && CYGWIN32=yes echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:2641: checking for executable suffix" >&5 +echo "configure:2658: checking for executable suffix" >&5 if eval "test \"`echo '$''{'rtems_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2670,12 +2687,12 @@ esac for ac_func in strerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2674: checking for $ac_func" >&5 +echo "configure:2691: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2727,7 +2744,7 @@ if test "$target_cpu" = "unix" ; then echo $ac_n "checking whether $RTEMS_HOST supports System V semaphores""... $ac_c" 1>&6 -echo "configure:2731: checking whether $RTEMS_HOST supports System V semaphores" >&5 +echo "configure:2748: checking whether $RTEMS_HOST supports System V semaphores" >&5 if eval "test \"`echo '$''{'rtems_cv_sysv_sem'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2736,7 +2753,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < @@ -2762,7 +2779,7 @@ int main () { } EOF -if { (eval echo configure:2766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then rtems_cv_sysv_sem="yes" else @@ -2785,7 +2802,7 @@ echo "$ac_t""$rtems_cv_sysv_sem" 1>&6 echo $ac_n "checking whether $RTEMS_HOST supports System V shared memory""... $ac_c" 1>&6 -echo "configure:2789: checking whether $RTEMS_HOST supports System V shared memory" >&5 +echo "configure:2806: checking whether $RTEMS_HOST supports System V shared memory" >&5 if eval "test \"`echo '$''{'rtems_cv_sysv_shm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2794,7 +2811,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < @@ -2810,7 +2827,7 @@ int main () { } EOF -if { (eval echo configure:2814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then rtems_cv_sysv_shm="yes" else @@ -2833,7 +2850,7 @@ echo "$ac_t""$rtems_cv_sysv_shm" 1>&6 echo $ac_n "checking whether $RTEMS_HOST supports System V messages""... $ac_c" 1>&6 -echo "configure:2837: checking whether $RTEMS_HOST supports System V messages" >&5 +echo "configure:2854: checking whether $RTEMS_HOST supports System V messages" >&5 if eval "test \"`echo '$''{'rtems_cv_sysv_msg'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2842,7 +2859,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < @@ -2858,7 +2875,7 @@ int main () { } EOF -if { (eval echo configure:2862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then rtems_cv_sysv_msg="yes" else @@ -2883,7 +2900,7 @@ fi # find all the Executive Makefiles echo $ac_n "checking for Makefile.in in c/src/exec/score/tools/$target_cpu""... $ac_c" 1>&6 -echo "configure:2887: checking for Makefile.in in c/src/exec/score/tools/$target_cpu" >&5 +echo "configure:2904: checking for Makefile.in in c/src/exec/score/tools/$target_cpu" >&5 if test -d $srcdir/c/src/exec/score/tools/$target_cpu; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -2898,7 +2915,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/exec/rtems""... $ac_c" 1>&6 -echo "configure:2902: checking for Makefile.in in c/src/exec/rtems" >&5 +echo "configure:2919: checking for Makefile.in in c/src/exec/rtems" >&5 if test -d $srcdir/c/src/exec/rtems; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -2913,7 +2930,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/exec/sapi""... $ac_c" 1>&6 -echo "configure:2917: checking for Makefile.in in c/src/exec/sapi" >&5 +echo "configure:2934: checking for Makefile.in in c/src/exec/sapi" >&5 if test -d $srcdir/c/src/exec/sapi; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -2930,7 +2947,7 @@ fi if test "$RTEMS_HAS_POSIX_API" = "yes"; then echo $ac_n "checking for Makefile.in in c/src/exec/posix""... $ac_c" 1>&6 -echo "configure:2934: checking for Makefile.in in c/src/exec/posix" >&5 +echo "configure:2951: checking for Makefile.in in c/src/exec/posix" >&5 if test -d $srcdir/c/src/exec/posix; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -2952,7 +2969,7 @@ if test -d "$srcdir/c/src/lib/libbsp/$target_cpu"; then if test -z "$rtems_bsp"; then echo $ac_n "checking for bsps""... $ac_c" 1>&6 -echo "configure:2956: checking for bsps" >&5 +echo "configure:2973: checking for bsps" >&5 files=`ls $srcdir/c/src/lib/libbsp/$target_cpu` for file in $files; do case $file in @@ -3017,7 +3034,7 @@ echo "configure:2956: checking for bsps" >&5 bspdirs="$bspdirs $bspdir" echo $ac_n "checking for Makefile.in in c/src/lib/libbsp/$bspcpudir$bspdir""... $ac_c" 1>&6 -echo "configure:3021: checking for Makefile.in in c/src/lib/libbsp/$bspcpudir$bspdir" >&5 +echo "configure:3038: checking for Makefile.in in c/src/lib/libbsp/$bspcpudir$bspdir" >&5 if test -d $srcdir/c/src/lib/libbsp/$bspcpudir$bspdir; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3032,7 +3049,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/lib/libbsp/${bspcpudir}shared""... $ac_c" 1>&6 -echo "configure:3036: checking for Makefile.in in c/src/lib/libbsp/${bspcpudir}shared" >&5 +echo "configure:3053: checking for Makefile.in in c/src/lib/libbsp/${bspcpudir}shared" >&5 if test -d $srcdir/c/src/lib/libbsp/${bspcpudir}shared; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3055,7 +3072,7 @@ fi # find all the CPU dependent library Makefiles echo $ac_n "checking for Makefile.in in c/src/lib/libcpu/$target_cpu""... $ac_c" 1>&6 -echo "configure:3059: checking for Makefile.in in c/src/lib/libcpu/$target_cpu" >&5 +echo "configure:3076: checking for Makefile.in in c/src/lib/libcpu/$target_cpu" >&5 if test -d $srcdir/c/src/lib/libcpu/$target_cpu; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3072,7 +3089,7 @@ fi if test "$skip_startfiles" != "yes"; then echo $ac_n "checking for Makefile.in in c/src/lib/start/$target_cpu""... $ac_c" 1>&6 -echo "configure:3076: checking for Makefile.in in c/src/lib/start/$target_cpu" >&5 +echo "configure:3093: checking for Makefile.in in c/src/lib/start/$target_cpu" >&5 if test -d $srcdir/c/src/lib/start/$target_cpu; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3103,10 +3120,35 @@ else fi # If the KA9Q TCP/IP stack is enabled, then find all KA9Q Makefiles +echo $ac_n "checking if KA9Q networking is enabled? ""... $ac_c" 1>&6 +echo "configure:3125: checking if KA9Q networking is enabled? " >&5 +echo "$ac_t""$RTEMS_HAS_KA9Q" 1>&6 if test "$RTEMS_HAS_KA9Q" = "yes"; then makefiles="$makefiles c/src/lib/libka9q/Makefile" fi +# If the TCP/IP stack is enabled, then find all TCP/IP Makefiles +echo $ac_n "checking if networking is enabled? ""... $ac_c" 1>&6 +echo "configure:3133: checking if networking is enabled? " >&5 +echo "$ac_t""$RTEMS_HAS_NETWORKING" 1>&6 +if test "$RTEMS_HAS_NETWORKING" = "yes"; then + +echo $ac_n "checking for Makefile.in in c/src/lib/libnetworking""... $ac_c" 1>&6 +echo "configure:3138: checking for Makefile.in in c/src/lib/libnetworking" >&5 +if test -d $srcdir/c/src/lib/libnetworking; then + rtems_av_save_dir=`pwd`; + cd $srcdir; + rtems_av_tmp=`find c/src/lib/libnetworking -name "Makefile.in" -print | sed "s/Makefile\.in/%/" | sort | sed "s/%/Makefile/"` + makefiles="$makefiles $rtems_av_tmp"; + cd $rtems_av_save_dir; + echo "$ac_t""done" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +fi + # If the C++ support is enabled, then include the Makefiles if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then makefiles="$makefiles c/src/lib/librtems++/Makefile" @@ -3114,7 +3156,7 @@ fi # If the tests are enabled, then find all the test suite Makefiles echo $ac_n "checking if the test suites are enabled? ""... $ac_c" 1>&6 -echo "configure:3118: checking if the test suites are enabled? " >&5 +echo "configure:3160: checking if the test suites are enabled? " >&5 tests_enabled=yes # Check whether --enable-tests or --disable-tests was given. if test "${enable_tests+set}" = set; then @@ -3133,7 +3175,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/tests/tools/$target_cpu""... $ac_c" 1>&6 -echo "configure:3137: checking for Makefile.in in c/src/tests/tools/$target_cpu" >&5 +echo "configure:3179: checking for Makefile.in in c/src/tests/tools/$target_cpu" >&5 if test -d $srcdir/c/src/tests/tools/$target_cpu; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3150,7 +3192,7 @@ fi if test "$tests_enabled" = "yes"; then echo $ac_n "checking for Makefile.in in c/src/tests/libtests""... $ac_c" 1>&6 -echo "configure:3154: checking for Makefile.in in c/src/tests/libtests" >&5 +echo "configure:3196: checking for Makefile.in in c/src/tests/libtests" >&5 if test -d $srcdir/c/src/tests/libtests; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3165,7 +3207,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/tests/sptests""... $ac_c" 1>&6 -echo "configure:3169: checking for Makefile.in in c/src/tests/sptests" >&5 +echo "configure:3211: checking for Makefile.in in c/src/tests/sptests" >&5 if test -d $srcdir/c/src/tests/sptests; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3180,7 +3222,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/tests/tmtests""... $ac_c" 1>&6 -echo "configure:3184: checking for Makefile.in in c/src/tests/tmtests" >&5 +echo "configure:3226: checking for Makefile.in in c/src/tests/tmtests" >&5 if test -d $srcdir/c/src/tests/tmtests; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3195,7 +3237,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/tests/mptests""... $ac_c" 1>&6 -echo "configure:3199: checking for Makefile.in in c/src/tests/mptests" >&5 +echo "configure:3241: checking for Makefile.in in c/src/tests/mptests" >&5 if test -d $srcdir/c/src/tests/mptests; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3211,7 +3253,7 @@ fi if test "$RTEMS_HAS_POSIX_API" = "yes"; then echo $ac_n "checking for Makefile.in in c/src/tests/psxtests""... $ac_c" 1>&6 -echo "configure:3215: checking for Makefile.in in c/src/tests/psxtests" >&5 +echo "configure:3257: checking for Makefile.in in c/src/tests/psxtests" >&5 if test -d $srcdir/c/src/tests/psxtests; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3229,7 +3271,7 @@ fi # If the HWAPI is enabled, the find the HWAPI Makefiles echo $ac_n "checking if the HWAPI is enabled? ""... $ac_c" 1>&6 -echo "configure:3233: checking if the HWAPI is enabled? " >&5 +echo "configure:3275: checking if the HWAPI is enabled? " >&5 # Check whether --enable-hwapi or --disable-hwapi was given. if test "${enable_hwapi+set}" = set; then enableval="$enable_hwapi" @@ -3240,7 +3282,7 @@ if test "${enable_hwapi+set}" = set; then makefiles="$makefiles c/src/lib/libhwapi/Makefile" echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/analog""... $ac_c" 1>&6 -echo "configure:3244: checking for Makefile.in in c/src/lib/libhwapi/analog" >&5 +echo "configure:3286: checking for Makefile.in in c/src/lib/libhwapi/analog" >&5 if test -d $srcdir/c/src/lib/libhwapi/analog; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3255,7 +3297,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/discrete""... $ac_c" 1>&6 -echo "configure:3259: checking for Makefile.in in c/src/lib/libhwapi/discrete" >&5 +echo "configure:3301: checking for Makefile.in in c/src/lib/libhwapi/discrete" >&5 if test -d $srcdir/c/src/lib/libhwapi/discrete; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3270,7 +3312,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/drivers""... $ac_c" 1>&6 -echo "configure:3274: checking for Makefile.in in c/src/lib/libhwapi/drivers" >&5 +echo "configure:3316: checking for Makefile.in in c/src/lib/libhwapi/drivers" >&5 if test -d $srcdir/c/src/lib/libhwapi/drivers; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3285,7 +3327,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/non_volatile_memory""... $ac_c" 1>&6 -echo "configure:3289: checking for Makefile.in in c/src/lib/libhwapi/non_volatile_memory" >&5 +echo "configure:3331: checking for Makefile.in in c/src/lib/libhwapi/non_volatile_memory" >&5 if test -d $srcdir/c/src/lib/libhwapi/non_volatile_memory; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3300,7 +3342,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/serial""... $ac_c" 1>&6 -echo "configure:3304: checking for Makefile.in in c/src/lib/libhwapi/serial" >&5 +echo "configure:3346: checking for Makefile.in in c/src/lib/libhwapi/serial" >&5 if test -d $srcdir/c/src/lib/libhwapi/serial; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3315,7 +3357,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/support""... $ac_c" 1>&6 -echo "configure:3319: checking for Makefile.in in c/src/lib/libhwapi/support" >&5 +echo "configure:3361: checking for Makefile.in in c/src/lib/libhwapi/support" >&5 if test -d $srcdir/c/src/lib/libhwapi/support; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3330,7 +3372,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/lib/libhwapi/wrapup""... $ac_c" 1>&6 -echo "configure:3334: checking for Makefile.in in c/src/lib/libhwapi/wrapup" >&5 +echo "configure:3376: checking for Makefile.in in c/src/lib/libhwapi/wrapup" >&5 if test -d $srcdir/c/src/lib/libhwapi/wrapup; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3372,10 +3414,11 @@ fi + # pick up all the Makefiles in required parts of the tree echo $ac_n "checking for Makefile.in in c/build-tools""... $ac_c" 1>&6 -echo "configure:3379: checking for Makefile.in in c/build-tools" >&5 +echo "configure:3422: checking for Makefile.in in c/build-tools" >&5 if test -d $srcdir/c/build-tools; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3390,7 +3433,7 @@ fi echo $ac_n "checking for Makefile.in in make""... $ac_c" 1>&6 -echo "configure:3394: checking for Makefile.in in make" >&5 +echo "configure:3437: checking for Makefile.in in make" >&5 if test -d $srcdir/make; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3405,7 +3448,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/lib/libmisc""... $ac_c" 1>&6 -echo "configure:3409: checking for Makefile.in in c/src/lib/libmisc" >&5 +echo "configure:3452: checking for Makefile.in in c/src/lib/libmisc" >&5 if test -d $srcdir/c/src/lib/libmisc; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3420,7 +3463,7 @@ fi echo $ac_n "checking for Makefile.in in c/src/tests/samples""... $ac_c" 1>&6 -echo "configure:3424: checking for Makefile.in in c/src/tests/samples" >&5 +echo "configure:3467: checking for Makefile.in in c/src/tests/samples" >&5 if test -d $srcdir/c/src/tests/samples; then rtems_av_save_dir=`pwd`; cd $srcdir; @@ -3652,6 +3695,7 @@ s%@RTEMS_LIBC_DIR@%$RTEMS_LIBC_DIR%g s%@RTEMS_USE_OWN_PDIR@%$RTEMS_USE_OWN_PDIR%g s%@RTEMS_HAS_POSIX_API@%$RTEMS_HAS_POSIX_API%g s%@RTEMS_HAS_KA9Q@%$RTEMS_HAS_KA9Q%g +s%@RTEMS_HAS_NETWORKING@%$RTEMS_HAS_NETWORKING%g s%@RTEMS_USE_MACROS@%$RTEMS_USE_MACROS%g s%@RTEMS_HAS_CPLUSPLUS@%$RTEMS_HAS_CPLUSPLUS%g s%@RTEMS_USE_GCC272@%$RTEMS_USE_GCC272%g diff --git a/configure.in b/configure.in index a4a9125b38..f6ddc6923f 100644 --- a/configure.in +++ b/configure.in @@ -33,7 +33,15 @@ AC_ARG_ENABLE(ka9q, \ yes) RTEMS_HAS_KA9Q=yes ;; no) RTEMS_HAS_KA9Q=no ;; *) AC_MSG_ERROR(bad value ${enableval} for enable-ka9q option) ;; -esac],[RTEMS_HAS_KA9Q=yes]) +esac],[RTEMS_HAS_KA9Q=no]) + +AC_ARG_ENABLE(networking, \ +[ --enable-networking enable TCP/IP stack], \ +[case "${enableval}" in + yes) RTEMS_HAS_NETWORKING=yes ;; + no) RTEMS_HAS_NETWORKING=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for enable-networking option) ;; +esac],[RTEMS_HAS_NETWORKING=yes]) AC_ARG_ENABLE(rtems-inlines, \ [ --enable-rtems-inlines enable RTEMS inline functions (use macros)], \ @@ -372,10 +380,19 @@ else fi # If the KA9Q TCP/IP stack is enabled, then find all KA9Q Makefiles +AC_MSG_CHECKING([if KA9Q networking is enabled? ]) +AC_MSG_RESULT($RTEMS_HAS_KA9Q) if test "$RTEMS_HAS_KA9Q" = "yes"; then makefiles="$makefiles c/src/lib/libka9q/Makefile" fi +# If the TCP/IP stack is enabled, then find all TCP/IP Makefiles +AC_MSG_CHECKING([if networking is enabled? ]) +AC_MSG_RESULT($RTEMS_HAS_NETWORKING) +if test "$RTEMS_HAS_NETWORKING" = "yes"; then + RTEMS_CHECK_MAKEFILE(c/src/lib/libnetworking) +fi + # If the C++ support is enabled, then include the Makefiles if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then makefiles="$makefiles c/src/lib/librtems++/Makefile" @@ -438,6 +455,7 @@ AC_SUBST(RTEMS_LIBC_DIR) AC_SUBST(RTEMS_USE_OWN_PDIR) AC_SUBST(RTEMS_HAS_POSIX_API) AC_SUBST(RTEMS_HAS_KA9Q) +AC_SUBST(RTEMS_HAS_NETWORKING) AC_SUBST(RTEMS_USE_MACROS) AC_SUBST(RTEMS_HAS_CPLUSPLUS) AC_SUBST(RTEMS_USE_GCC272) diff --git a/make/compilers/gcc-target-default.cfg b/make/compilers/gcc-target-default.cfg index 359ae1a295..ee533743e8 100644 --- a/make/compilers/gcc-target-default.cfg +++ b/make/compilers/gcc-target-default.cfg @@ -22,6 +22,10 @@ CPLUS_CPPFLAGS=$(CFLAGS) $(XCPPFLAGS) INCLUDE_KA9Q_yes_V = -I$(PROJECT_INCLUDE)/ka9q INCLUDE_KA9Q = $(INCLUDE_KA9Q_$(HAS_KA9Q)_V) +# We only include the header files for networking if it is enabled. +INCLUDE_NETWORKING_yes_V = -I$(PROJECT_INCLUDE)/networking +INCLUDE_NETWORKING = $(INCLUDE_NETWORKING_$(HAS_NETWORKING)_V) + ifeq ($(RTEMS_USE_GCC272),yes) ifeq ($(RTEMS_CROSS_TARGET),no) @@ -33,6 +37,7 @@ endif CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \ -I$(PROJECT_INCLUDE) \ $(INCLUDE_KA9Q) \ + $(INCLUDE_NETWORKING) \ $(RTEMS_LIBC_INCLUDES) $(DEFINES) ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g \ @@ -46,6 +51,7 @@ GCC_INCLUDE=$(shell $(CC) $(CPU_CFLAGS) -print-file-name=include $(GCCSED)) CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \ -nostdinc -I$(PROJECT_INCLUDE) \ $(INCLUDE_KA9Q) \ + $(INCLUDE_NETWORKING) \ -I$(RTEMS_LIBC_DIR)/include -I$(GCC_INCLUDE) $(DEFINES) ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g \ @@ -65,7 +71,7 @@ endif else CFLAGS_DEFAULT = $(CPU_DEFINES) $(CPU_CFLAGS) -Wall -ansi -fasm -g \ -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems \ - $(INCLUDE_KA9Q) $(DEFINES) + $(INCLUDE_KA9Q) $(INCLUDE_NETWORKING) $(DEFINES) ASMFLAGS=$(CPU_DEFINES) $(CPU_CFLAGS) -g -I$(srcdir) \ -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems $(DEFINES) diff --git a/make/custom/FreeBSD-posix.cfg b/make/custom/FreeBSD-posix.cfg index 326c0078f2..3dd9b6499e 100644 --- a/make/custom/FreeBSD-posix.cfg +++ b/make/custom/FreeBSD-posix.cfg @@ -44,6 +44,10 @@ HAS_MP=yes # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This target does NOT support the POSIX API. HAS_POSIX_API=no diff --git a/make/custom/HPUX9-posix.cfg b/make/custom/HPUX9-posix.cfg index c0383ea164..d054bc370a 100644 --- a/make/custom/HPUX9-posix.cfg +++ b/make/custom/HPUX9-posix.cfg @@ -43,6 +43,10 @@ HAS_MP=yes # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This target does NOT support the POSIX API. HAS_POSIX_API=no diff --git a/make/custom/Linux-posix.cfg b/make/custom/Linux-posix.cfg index 2972d6388a..c50daf9006 100644 --- a/make/custom/Linux-posix.cfg +++ b/make/custom/Linux-posix.cfg @@ -45,6 +45,10 @@ HAS_MP=yes # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This target does NOT support the POSIX API. HAS_POSIX_API=no diff --git a/make/custom/Solaris-posix.cfg b/make/custom/Solaris-posix.cfg index f2bf14997c..34eb6264d8 100644 --- a/make/custom/Solaris-posix.cfg +++ b/make/custom/Solaris-posix.cfg @@ -44,6 +44,10 @@ HAS_MP=yes # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This target does NOT support the POSIX API. HAS_POSIX_API=no diff --git a/make/custom/cvme961.cfg b/make/custom/cvme961.cfg index fbc8eb660a..6513ed1441 100644 --- a/make/custom/cvme961.cfg +++ b/make/custom/cvme961.cfg @@ -32,6 +32,10 @@ HAS_MP=yes # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/default.cfg b/make/custom/default.cfg index f09b2f89e3..980b73cf5b 100644 --- a/make/custom/default.cfg +++ b/make/custom/default.cfg @@ -63,6 +63,15 @@ HAS_MP=no # Define this to yes if this target wants the KA9Q TCP/IP stack ifeq ($(RTEMS_HAS_KA9Q),yes) HAS_KA9Q=yes +else +HAS_KA9Q=no +endif + +# Define this to yes if this target wants the TCP/IP stack +ifeq ($(RTEMS_HAS_NETWORKING),yes) +HAS_NETWORKING=yes +else +HAS_NETWORKING=no endif # Define this to yes if this target wants the posix api diff --git a/make/custom/dmv152.cfg b/make/custom/dmv152.cfg index 078f23c636..c8337e15a3 100644 --- a/make/custom/dmv152.cfg +++ b/make/custom/dmv152.cfg @@ -27,6 +27,10 @@ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) # if defined asserts do not generate code. This is commonly used diff --git a/make/custom/efi332.cfg b/make/custom/efi332.cfg index ec3a4d8cde..cc4c1b50f4 100644 --- a/make/custom/efi332.cfg +++ b/make/custom/efi332.cfg @@ -26,6 +26,10 @@ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # Override default start file START_BASE=start332 diff --git a/make/custom/efi68k.cfg b/make/custom/efi68k.cfg index 34f91c2357..09c15910d6 100644 --- a/make/custom/efi68k.cfg +++ b/make/custom/efi68k.cfg @@ -25,6 +25,10 @@ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # Override default start file START_BASE=start68k diff --git a/make/custom/erc32.cfg b/make/custom/erc32.cfg index 3267d52474..2e0a27595c 100644 --- a/make/custom/erc32.cfg +++ b/make/custom/erc32.cfg @@ -32,6 +32,10 @@ CFLAGS_OPTIMIZE_V=-O4 # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # Override default start file START_BASE=startsis diff --git a/make/custom/force386.cfg b/make/custom/force386.cfg index 7828e3576d..6fce969131 100644 --- a/make/custom/force386.cfg +++ b/make/custom/force386.cfg @@ -28,6 +28,10 @@ HAS_MP=yes # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/gen68302.cfg b/make/custom/gen68302.cfg index 7fce2148d2..ef4293e053 100644 --- a/make/custom/gen68302.cfg +++ b/make/custom/gen68302.cfg @@ -26,6 +26,10 @@ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/gensh1.cfg b/make/custom/gensh1.cfg index 526c775d82..38eb59db15 100644 --- a/make/custom/gensh1.cfg +++ b/make/custom/gensh1.cfg @@ -35,6 +35,10 @@ HAS_MP=no # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # debug flags: typically none, but we use -O1 as it produces better code CFLAGS_DEBUG_V = -O1 diff --git a/make/custom/go32.cfg b/make/custom/go32.cfg index ff67d0b0fd..e8708d6a03 100644 --- a/make/custom/go32.cfg +++ b/make/custom/go32.cfg @@ -57,6 +57,10 @@ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # Base name of start file # go32 does not use the rtems start file START_BASE= diff --git a/make/custom/i386ex.cfg b/make/custom/i386ex.cfg index 12fcec58fb..bedf6bd107 100644 --- a/make/custom/i386ex.cfg +++ b/make/custom/i386ex.cfg @@ -25,6 +25,10 @@ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/idp.cfg b/make/custom/idp.cfg index 89541a7522..1ffac2e85d 100644 --- a/make/custom/idp.cfg +++ b/make/custom/idp.cfg @@ -16,6 +16,10 @@ RTEMS_BSP_FAMILY=idp # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/mvme136.cfg b/make/custom/mvme136.cfg index ada4a834f4..17ecd7bf24 100644 --- a/make/custom/mvme136.cfg +++ b/make/custom/mvme136.cfg @@ -29,6 +29,10 @@ HAS_MP=yes # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/mvme147.cfg b/make/custom/mvme147.cfg index 89aab49929..092b4890ee 100644 --- a/make/custom/mvme147.cfg +++ b/make/custom/mvme147.cfg @@ -23,6 +23,10 @@ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/mvme162.cfg b/make/custom/mvme162.cfg index 21a2fe7782..d3c55c2a75 100644 --- a/make/custom/mvme162.cfg +++ b/make/custom/mvme162.cfg @@ -50,6 +50,10 @@ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/no_bsp.cfg b/make/custom/no_bsp.cfg index a0f29170de..83937a06f4 100644 --- a/make/custom/no_bsp.cfg +++ b/make/custom/no_bsp.cfg @@ -31,4 +31,8 @@ HAS_MP=yes # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # Miscellaneous additions go here diff --git a/make/custom/ods68302.cfg b/make/custom/ods68302.cfg index ac4ffa9d0d..0988c53a04 100644 --- a/make/custom/ods68302.cfg +++ b/make/custom/ods68302.cfg @@ -36,6 +36,10 @@ CFLAGS_DEBUG_V+=-g # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # Define this to yes if C++ is included in the development environment. # This requires that at least the GNU C++ compiler and libg++ be installed. ifeq ($(RTEMS_HAS_CPLUSPLUS),yes) diff --git a/make/custom/p4000.cfg b/make/custom/p4000.cfg index 9f468adfc0..298c443249 100644 --- a/make/custom/p4000.cfg +++ b/make/custom/p4000.cfg @@ -16,6 +16,10 @@ RTEMS_BSP_FAMILY=p4000 # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/p4600.cfg b/make/custom/p4600.cfg index 2d8e5b3f9b..527e6cada9 100644 --- a/make/custom/p4600.cfg +++ b/make/custom/p4600.cfg @@ -29,6 +29,10 @@ RTEMS_BSP=p4000 # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/p4650.cfg b/make/custom/p4650.cfg index 3b01b116fd..e249fb2870 100644 --- a/make/custom/p4650.cfg +++ b/make/custom/p4650.cfg @@ -28,6 +28,10 @@ RTEMS_BSP=p4000 # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/papyrus.cfg b/make/custom/papyrus.cfg index 830238bb1b..10f4cf0368 100644 --- a/make/custom/papyrus.cfg +++ b/make/custom/papyrus.cfg @@ -19,6 +19,10 @@ RTEMS_BSP_FAMILY=papyrus # This target does NOT support the KA9Q TCP/IP stack so ignore requests # to enable it. HAS_KA9Q=no + +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no # This section makes the target dependent options file. diff --git a/make/custom/portsw.cfg b/make/custom/portsw.cfg index eee46e86e3..6669819dd2 100644 --- a/make/custom/portsw.cfg +++ b/make/custom/portsw.cfg @@ -56,6 +56,10 @@ HAS_MP=no # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # Define this to yes if this target wants the posix api HAS_POSIX_API=no diff --git a/make/custom/psim.cfg b/make/custom/psim.cfg index a67ad5f6dc..7a7f2fef17 100644 --- a/make/custom/psim.cfg +++ b/make/custom/psim.cfg @@ -16,6 +16,10 @@ RTEMS_BSP_FAMILY=psim # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This section makes the target dependent options file. # NDEBUG (C library) diff --git a/make/custom/simhppa.cfg b/make/custom/simhppa.cfg index e1d87622f3..43674ea40d 100644 --- a/make/custom/simhppa.cfg +++ b/make/custom/simhppa.cfg @@ -42,6 +42,10 @@ HAS_MP=yes # to enable it. HAS_KA9Q=no +# This target does NOT support the TCP/IP stack so ignore requests +# to enable it. +HAS_NETWORKING=no + # This makes the target dependent options file. # NDEBUG (C library) diff --git a/make/target.cfg.in b/make/target.cfg.in index 50033d933f..01f3ae1a72 100644 --- a/make/target.cfg.in +++ b/make/target.cfg.in @@ -40,6 +40,7 @@ RTEMS_HOST = @RTEMS_HOST@ RTEMS_USE_OWN_PDIR = @RTEMS_USE_OWN_PDIR@ RTEMS_HAS_POSIX_API = @RTEMS_HAS_POSIX_API@ RTEMS_HAS_KA9Q = @RTEMS_HAS_KA9Q@ +RTEMS_HAS_NETWORKING = @RTEMS_HAS_NETWORKING@ RTEMS_HAS_CPLUSPLUS = @RTEMS_HAS_CPLUSPLUS@ RTEMS_USE_MACROS = @RTEMS_USE_MACROS@ RTEMS_USE_GCC272 = @RTEMS_USE_GCC272@ -- cgit v1.2.3