From owner-freebsd-hackers@FreeBSD.ORG Fri Nov 16 21:49:21 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id ED69E8FC for ; Fri, 16 Nov 2012 21:49:20 +0000 (UTC) (envelope-from rdivacky@vlakno.cz) Received: from vlakno.cz (mail.vlakno.cz [178.238.39.38]) by mx1.freebsd.org (Postfix) with ESMTP id 71D658FC12 for ; Fri, 16 Nov 2012 21:49:20 +0000 (UTC) Received: by vlakno.cz (Postfix, from userid 1002) id 9D2F31CC5660; Fri, 16 Nov 2012 22:49:19 +0100 (CET) Date: Fri, 16 Nov 2012 22:49:19 +0100 From: Roman Divacky To: Navdeep Parhar Subject: Re: clang mangling some static struct names? Message-ID: <20121116214919.GA41725@freebsd.org> References: <50A6A3BD.5000901@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <50A6A3BD.5000901@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Nov 2012 21:49:21 -0000 Yes, it does that. iirc so that you can have things like void foo(int cond) { if (cond) { static int i = 7; } else { static int i = 8; } } working correctly. I dont know why scsi_low_statics is there multiple times. On Fri, Nov 16, 2012 at 12:36:13PM -0800, Navdeep Parhar wrote: > On a very recent clang-built HEAD, I see that some static structures > have a ".n" appended to their name. For example, this declaration in > the cxgbe driver now results in a t4_list.0 symbol in the KLD: > > static SLIST_HEAD(, adapter) t4_list; > > # nm if_cxgbe.ko | grep t4_list > 0000000000000020 b t4_list.0 > > gcc used to leave it as t4_list. One problem is that kgdb can't display > such an item (it interprets the dot as a delimiter between a structure > and its element). Some of the structures listed at the end look strange > for other reasons too -- for example, why should there be multiple > scsi_low_statics.n symbols when there's only one such structure in > scsi_low.c? > > Regards, > Navdeep > > > full list of affected structures (and some false positives?): > # nm kernel *.ko | grep '\.[0-9]$' > ffffffff814802d0 b accept_filtlsthd.0 > ffffffff8125ca88 b acpi_intr_list.0 > ffffffff81292278 b cdevsw_gt_post_list.0 > ffffffff812defc8 b clock_adj.0 > ffffffff812defd0 b clock_adj.1 > ffffffff814d7ac0 b enumerators.0 > ffffffff81292460 b eventtimers.0 > ffffffff81279680 b feedertab.0 > ffffffff81248470 d intr_cpus.0.0 > ffffffff814a0378 b keyboard_drivers.0 > ffffffff81481c60 b lltables.0 > ffffffff814a17a8 b profperiod.1 > ffffffff81482280 b route_cb.0 > ffffffff81482284 b route_cb.1 > ffffffff81482288 b route_cb.2 > ffffffff8148228c b route_cb.3 > ffffffff812796d0 b sndstat_devlist.0 > ffffffff814a17a0 b statperiod.1 > ffffffff812925a4 b tstate.0 > ffffffff812925a8 b tstate.1 > ffffffff8128ab30 b twe_check_bits.lastwarn.0 > ffffffff8128ab38 b twe_check_bits.lastwarn.1 > ffffffff814804d8 b unp_defers.0 > ffffffff81488760 b vm_phys_lookup_lists.0 > ffffffff813e7900 b w_hash.0 > ffffffff813e80dc b w_hash.2 > ffffffff813e58f0 b w_lohash.0 > ffffffff813e78dc b w_lohash.2 > 0000000000000318 d proto_reg.0 > 000000000000031c d proto_reg.1 > 00000000000000c0 b fasttrap_procs.0 > 00000000000000c8 b fasttrap_procs.1 > 00000000000000d0 b fasttrap_procs.2 > 0000000000000080 b fasttrap_provs.0 > 0000000000000088 b fasttrap_provs.1 > 0000000000000090 b fasttrap_provs.2 > 0000000000000028 b t3_list.0 > 0000000000000050 b t3_uld_list.0 > 0000000000000020 b t4_list.0 > 0000000000000048 b t4_uld_list.0 > 0000000000000000 b efdev.0 > 0000000000000190 b Counter.0 > 0000000000000194 b Counter.1 > 0000000000000198 b Counter.2 > 000000000000019c b Counter.3 > 0000000000000028 b taphead.0 > 0000000000001190 b svc_rpc_gss_callbacks.0 > 0000000000001198 b svc_rpc_gss_svc_names.0 > 0000000000000038 b scsi_low_statics.0 > 000000000000003c b scsi_low_statics.1 > 0000000000000040 b scsi_low_statics.2 > 0000000000000044 b scsi_low_statics.3 > 0000000000000048 b scsi_low_statics.4 > 0000000000000008 b feedertab.0 > 0000000000000098 b sndstat_devlist.0 > 0000000000000008 b pcx_info.0 > 000000000000000c b pcx_info.1 > 0000000000000010 b pcx_info.2 > 0000000000000014 b pcx_info.3 > 0000000000000018 b pcx_info.4 > 000000000000001c b pcx_info.5 > 0000000000000020 b pcx_info.6 > 0000000000000028 b pcx_info.7 > 0000000000000000 b twe_check_bits.lastwarn.0 > 0000000000000008 b twe_check_bits.lastwarn.1 > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"