On Wed, Sep 12, 2007 at 10:30:03PM -0700, David Brennan wrote:
> I am just returning to eCos after a prolonged absence. I got the
> latest CVS version and tried to compile for a basic pc with network
> functions. However the if_i82559.c module will not compile with
> default template.
>
> [EMAIL PROTECTED]:/opt/ecos/pc-base$ rm -rf *
> [EMAIL PROTECTED]:/opt/ecos/pc-base$ ecosconfig new pc net
> U CYGBLD_ISO_STRUCTTIMEVAL_HEADER, new inferred value <cyg/posix/sys/time.h>
> U CYGBLD_ISO_FNMATCH_HEADER, new inferred value <cyg/fileio/fnmatch.h>
> [EMAIL PROTECTED]:/opt/ecos/pc-base$ ecosconfig tree
> [EMAIL PROTECTED]:/opt/ecos/pc-base$ make -s
> headers finished
> /opt/ecos/ecos/packages/devs/eth/intel/i82559/current/src/if_i82559.c:
> In function `pci_init_find_82559s':
> /opt/ecos/ecos/packages/devs/eth/intel/i82559/current/src/if_i82559.c:2992:
> `eth_dsr' undeclared (first use in this function)
> /opt/ecos/ecos/packages/devs/eth/intel/i82559/current/src/if_i82559.c:2992:
> (Each undeclared identifier is reported only once
> /opt/ecos/ecos/packages/devs/eth/intel/i82559/current/src/if_i82559.c:2992:
> for each function it appears in.)
> make[1]: *** [src/if_i82559.o.d] Error 1
> make: *** [build] Error 2
[EMAIL PROTECTED]:~/eCos/work$ rm -fr *
[EMAIL PROTECTED]:~/eCos/work$ ecosconfig new pc net
U CYGBLD_ISO_STRUCTTIMEVAL_HEADER, new inferred value <cyg/posix/sys/time.h>
U CYGBLD_ISO_FNMATCH_HEADER, new inferred value <cyg/fileio/fnmatch.h>
[EMAIL PROTECTED]:~/eCos/work$ ecosconfig tree
[EMAIL PROTECTED]:~/eCos/work$ make -s
headers finished
build finished
Hummmm?
[Scratches head]
[EMAIL PROTECTED]:~/eCos$ cd anoncvs-clean/packages/devs/eth/
[EMAIL PROTECTED]:~/eCos/anoncvs-clean/packages/devs/eth$ cvs -n up
M intel/i82559/current/ChangeLog
M intel/i82559/current/src/if_i82559.c
Duh!
[Hangs head in same]
[EMAIL PROTECTED]:~/eCos/anoncvs-clean/packages/devs/eth$ cvs -n up
M intel/i82559/current/ChangeLog
M intel/i82559/current/src/if_i82559.c
[EMAIL PROTECTED]:~/eCos/anoncvs-clean/packages/devs/eth$
[EMAIL PROTECTED]:~/eCos/anoncvs-clean/packages/devs/eth$ cvs diff
Index: intel/i82559/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/eth/intel/i82559/current/ChangeLog,v
retrieving revision 1.27
diff -u -r1.27 ChangeLog
--- intel/i82559/current/ChangeLog 23 Nov 2006 17:20:09 -0000 1.27
+++ intel/i82559/current/ChangeLog 15 Sep 2007 13:55:30 -0000
@@ -1,3 +1,8 @@
+2007-06-12 Andrew Lunn <[EMAIL PROTECTED]>
+
+ * src/if_i82559.c (eth_dsr): Fixed the previous change which broken
+ linkage under some conditions.
+
2006-11-23 David Fernandez <[EMAIL PROTECTED]>
* src/if_i82559.c Modifications to remove compile warnings.
Index: intel/i82559/current/src/if_i82559.c
===================================================================
RCS file:
/cvs/ecos/ecos/packages/devs/eth/intel/i82559/current/src/if_i82559.c,v
retrieving revision 1.29
diff -u -r1.29 if_i82559.c
--- intel/i82559/current/src/if_i82559.c 23 Nov 2006 17:20:09 -0000
1.29
+++ intel/i82559/current/src/if_i82559.c 15 Sep 2007 13:55:32 -0000
@@ -907,9 +907,9 @@
static void InitTxRing(struct i82559* p_i82559);
static void ResetTxRing(struct i82559* p_i82559);
-#if defined(CYGHWR_DEVS_ETH_INTEL_I82559_MISSED_INTERRUPT) \
-|| (defined(CYGNUM_DEVS_ETH_INTEL_I82559_SEPARATE_MUX_INTERRUPT) && \
- !defined(CYGPKG_IO_ETH_DRIVERS_STAND_ALONE) )
+#if defined(CYGHWR_DEVS_ETH_INTEL_I82559_MISSED_INTERRUPT) || \
+ defined(CYGNUM_DEVS_ETH_INTEL_I82559_SEPARATE_MUX_INTERRUPT) || \
+ !defined(CYGPKG_IO_ETH_DRIVERS_STAND_ALONE)
static void
eth_dsr(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data);
#endif
@@ -2713,10 +2713,9 @@
// ------------------------------------------------------------------------
-#if defined(CYGHWR_DEVS_ETH_INTEL_I82559_MISSED_INTERRUPT) \
-|| (defined(CYGNUM_DEVS_ETH_INTEL_I82559_SEPARATE_MUX_INTERRUPT) && \
- !defined(CYGPKG_IO_ETH_DRIVERS_STAND_ALONE) )
-
+#if defined(CYGHWR_DEVS_ETH_INTEL_I82559_MISSED_INTERRUPT) || \
+ defined(CYGNUM_DEVS_ETH_INTEL_I82559_SEPARATE_MUX_INTERRUPT) || \
+ !defined(CYGPKG_IO_ETH_DRIVERS_STAND_ALONE)
static void
eth_dsr(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data)
{
[EMAIL PROTECTED]:~/eCos/anoncvs-clean/packages/devs/eth$ cvs commit
Checking in intel/i82559/current/ChangeLog;
/cvs/ecos/ecos/packages/devs/eth/intel/i82559/current/ChangeLog,v <--
ChangeLog
new revision: 1.28; previous revision: 1.27
done
Checking in intel/i82559/current/src/if_i82559.c;
/cvs/ecos/ecos/packages/devs/eth/intel/i82559/current/src/if_i82559.c,v <--
if_i82559.c
new revision: 1.30; previous revision: 1.29
done
Err, bit late now but...
[EMAIL PROTECTED]:~/eCos/work$ ecosconfig new pc redboot
U CYGSEM_HAL_USE_ROM_MONITOR, new inferred value 0
U CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK, new inferred value 0
[EMAIL PROTECTED]:~/eCos/work$ ecosconfig tree
[EMAIL PROTECTED]:~/eCos/work$ make -s
headers finished
/home/lunn/eCos/anoncvs-clean/packages/hal/i386/arch/current/src/redboot_linux_exec.c:
In function `do_exec':
/home/lunn/eCos/anoncvs-clean/packages/hal/i386/arch/current/src/redboot_linux_exec.c:261:
warning: implicit declaration of function `cyg_hal_plf_screen_position'
/home/lunn/eCos/anoncvs-clean/packages/hal/common/current/src/hal_stub.c: In
function `handle_exception_cleanup':
/home/lunn/eCos/anoncvs-clean/packages/hal/common/current/src/hal_stub.c:457:
warning: comparison between pointer and integer
build finished
Phew!
Andrew