From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8360 invoked by alias); 25 Jun 2013 16:52:23 -0000 Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Received: (qmail 8348 invoked by uid 89); 25 Jun 2013 16:52:22 -0000 X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS,TW_CP autolearn=ham version=3.3.1 Received: from plane.gmane.org (HELO plane.gmane.org) (80.91.229.3) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 25 Jun 2013 16:52:21 +0000 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1UrWTS-0000bB-En for ecos-discuss@ecos.sourceware.org; Tue, 25 Jun 2013 18:52:10 +0200 Received: from dsl.comtrol.com ([64.122.56.22]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 25 Jun 2013 18:52:10 +0200 Received: from grant.b.edwards by dsl.comtrol.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 25 Jun 2013 18:52:10 +0200 To: ecos-discuss@ecos.sourceware.org From: Grant Edwards Date: Tue, 25 Jun 2013 16:52:00 -0000 Message-ID: User-Agent: slrn/1.0.1 (Linux) Subject: [ECOS] Why does #include define a bunch of time-related symbols? X-SW-Source: 2013-06/txt/msg00023.txt.bz2 I'm working on a new Ethernet driver. eCos kernel/libs (including the new drive) build fine. But, when I try to link an application I get a bunch of errors because some time-related functions are defined twice. They're defined in libtarget where they're supposed to be, but they're also getting defined in the object file for my Ethernet driver [and I can't figure out why]. However, my ethernet driver file has been stripped down to nothing but a handful of #include directives: ------------------------------lpc1800_ether.c------------------------------ #include #include #include #include --------------------------------------------------------------------------- If I comment out the last line (eth_drv.h), the problem goes away (the object file is empty). With that line, I get the duplicate time functions showing up in what should be an empty object file. Why? Here's some info on the object file that's generated with eth_drv.h included: $ size [...]/current/src/devs_eth_arm_lpc1800_lpc1800_ether.o text data bss dec hex filename 1740 0 0 1740 6cc [...]/current/src/devs_eth_arm_lpc1800_lpc1800_ether.o $ nm -a [...]/current/src/devs_eth_arm_lpc1800_lpc1800_ether.o 00000000 t $a [...] 00000000 N .debug_ranges 00000000 N .debug_str 00000000 t .text 00000000 t .text.asctime 00000000 t .text.asctime_r 00000000 t .text.ctime 00000000 t .text.ctime_r 00000000 t .text.cyg_libc_time_getzoneoffsets 00000000 t .text.cyg_libc_time_setdst 00000000 t .text.cyg_libc_time_setzoneoffsets 00000000 t .text.difftime 00000000 t .text.gmtime 00000000 t .text.localtime 00000000 t .text.localtime_r 00000000 t .text.strcoll U __aeabi_i2d 00000000 T asctime 00000000 T asctime_r 00000000 T ctime 00000000 T ctime_r U cyg_libc_time_asctime_buf U cyg_libc_time_current_dst_offset U cyg_libc_time_current_dst_stat U cyg_libc_time_current_std_offset U cyg_libc_time_day_name 00000000 T cyg_libc_time_getzoneoffsets U cyg_libc_time_gmtime_buf U cyg_libc_time_itoa U cyg_libc_time_localtime_buf U cyg_libc_time_month_name U cyg_libc_time_normalize_structtm 00000000 T cyg_libc_time_setdst 00000000 T cyg_libc_time_setzoneoffsets 00000000 T difftime 00000000 T gmtime U gmtime_r 00000000 T localtime 00000000 T localtime_r 00000000 a lpc1800_ether.c U memcpy U strcmp 00000000 T strcoll -- Grant Edwards grant.b.edwards Yow! I'm a fuschia bowling at ball somewhere in Brittany gmail.com -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss