undefined reference to `memset'

Jung-uk Kim jkim at niksun.com
Thu Mar 24 15:22:11 PST 2005


On Thursday 24 March 2005 05:10 pm, Sean McNeil wrote:
> On Thu, 2005-03-24 at 13:49 -0800, David O'Brien wrote:
> > Please don't top-post -- it destroys context.  [Format recovered]
> >
> > On Thu, Mar 24, 2005 at 12:46:41PM -0800, Vinod Kashyap wrote:
> > > > On Thu, Mar 24, 2005 at 06:05:17PM +1100, Peter Jeremy wrote:
> > > > > 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.
> > > >
> > > > Vinod can you please post a complete compilable example?
> > > > It is impossible to get anything done about your issue
> > > > without stand alone test code.
> > >
> > > Ok, make sure you have 'device twa' in your kernel
> > > configuration file, and apply these patches to
> > > /sys/dev/twa/twa.c.
> > > This patch causes the problem:
> >
> > "stand alone" means a single foo.c file that shows the problem
> > you want fixed.
> > I cannot submit a GCC bug report with a tarball of the entire
> > FreeBSD kernel.
>
> I've taken the liberty to write up an example here.  Not sure if
> this is a bug or not:
>
> cc -O -pipe -c -fno-builtin -ffreestanding memset_bug.c
>
> Take a look at what is generated:
>
> objdump --disassemble memset_bug.o
>
> You'll see that instead of performing the inline code generation
> for memset, the compiler generates a call to memset in the case of
> the assignment of {0}.

Have you tried -minline-all-stringops/-mno-inline-all-stringops?

Jung-uk Kim


More information about the freebsd-amd64 mailing list