This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: build problem - invalid operand in memset.S


On Mon, Aug 3, 2009 at 10:08 AM, Woods, David M. Dr.<woodsdm2@muohio.edu> wrote:
>
>
> I'm trying to build glibc 2.10.1 on a x86_64 system running Redhat 4u2 using gcc 4.3.1 and binutils 2.15.
>
> Make reports the following error:
>
> ../sysdeps/x86_64/memset.S: Assembler messages:
> ../sysdeps/x86_64/memset.S:706: Error: suffix or operands invalid for `movnti'
>
>
> Looking at memset.S, I see code using the movntiq instruction, but looking at the Intel instruction set reference, I don't see this instruction.? There are movnti (store doubleword) and movntq (store quadword) instructions.

Often the assembler may support more than just the ISA, sometimes it
supports special instruction names that assemble to different machine
code depending on the selected target cpu. Theses are "shortcuts" that
help in writing a single function that works across different cpus.

> The code will build if I replace movntiq with movntq in memset.S and memcpy.S, but I would be surprised if I have to edit the code to build glibc, so I'm wondering if I missed a configuration step.
>
> What I've done is extract the archive to /software/glibc/glibc-2.10.1, make a build directory at /software/glibc/glibc-build, change to the build directory, run "../glibc-2.10.1/configure -prefix=/software/glibc/2.10.1", and then "make".
>
> Any suggestions on how to get this to build without changing these calls to "movntiq"?

Look into the version of your assembler (binutils project) to
determine if you need a newer assembler.

Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]