Date: Thu, 24 Mar 2005 18:05:17 +1100 From: Peter Jeremy <PeterJeremy@optushome.com.au> To: Vinod Kashyap <vkashyap@amcc.com> Cc: freebsd-amd64@freebsd.org Subject: Re: undefined reference to `memset' Message-ID: <20050324070516.GA43123@cirb503493.alcatel.com.au> In-Reply-To: <IDTR9T00.LMF@hadar.amcc.com> References: <IDTR9T00.LMF@hadar.amcc.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2005-Mar-23 13:48:04 -0800, Vinod Kashyap wrote: >If any kernel module has the following, or a similar line in it: >----- >char x[100] = {0}; >----- >building of the GENERIC kernel on FreeBSD 5 -STABLE for amd64 >as of 03/19/05, fails with the following message at the time of linking: >"undefined reference to `memset'". > >The same problem is not seen on i386. > >The problem goes away if the above line is changed to: >----- >char x[100]; >memset(x, 0, 100); >----- Can you post a complete (compilable) example please. Based on your second example, I suspect that you are putting the variable declaration inside a function definition - the second example doesn't make sense outside a function. If I add "char x[100] = {0};" into a function on i386 and compile it as a kernel module on 5.3, a static memset symbol is generated - it's possible that the amd64 compiler gets confused about the implicit reference to memset that this code needs. -- Peter Jeremy
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050324070516.GA43123>