Issue Details (XML | Word | Printable)

Key: STDCXX-799
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Blocker Blocker
Assignee: Farid Zaripov
Reporter: Martin Sebor
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

[Intel C++ 10.0/Linux] error in rw/_traits.h on __builtin_memmove

Created: 27/Mar/08 06:02 PM   Updated: 15/May/08 12:21 PM
Return to search
Component/s: None
Affects Version/s: None
Fix Version/s: 4.2.1

Time Tracking:
Original Estimate: 1h
Original Estimate - 1h
Remaining Estimate: 2h
Time Spent - 2h Remaining Estimate - 2h
Time Spent: 2h
Time Spent - 2h Remaining Estimate - 2h

Environment: Intel C++ 10.0/Linux, gcc 4.1 as the back end
Issue Links:
Reference
 

Regression: Regression
Severity: Compiler Error
Resolution Date: 02/Apr/08 04:35 PM


 Description  « Hide
The error below shows up in logs for our optimized (not debug) nightly builds with Intel C++ 10.0 on Linux with gcc 4.1 for the back end:
### gmake  -Cbuild/lib   BUILDMODE=pthreads,shared,optimized,wide CONFIG=icc.config 2>&1 | sed -e "s/\/build2\/batman\/5.0.0\/builds\/34590289\/source-buildspace\/build/\$(BUILDDIR)/g;s/\/build2\/batman\/5.0.0\/builds\/34590289\/source-buildspace/\$(TOPDIR)/g" | tee /tmp/build.19074.log:
gmake: Entering directory `$(BUILDDIR)/lib'
...
icc -c -I$(TOPDIR)/include/ansi   -D_REENTRANT -I$(TOPDIR)/include -I$(BUILDDIR)/include  -cxxlib-nostd -O2   -w1  -fpic  $(TOPDIR)/src/bitset.cpp
$(TOPDIR)/include/rw/_traits.h(439): error: identifier "__builtin_memmove" is undefined
          _RWSTD_MEMMOVE (__s1, __s2, __n);
          ^

compilation aborted for $(TOPDIR)/src/bitset.cpp (code 2)


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Martin Sebor added a comment - 28/Mar/08 02:57 PM
This must be fallout from STDCXX-687.

Eric Lemings added a comment - 28/Mar/08 04:58 PM
This platform is currently assigned to Farid. Shouldn't this issue also be assigned to Farid?

Farid Zaripov added a comment - 02/Apr/08 04:35 PM
Fixed thus: http://svn.apache.org/viewvc?rev=643964&view=rev
Will be closed after merging the patch to 4.2.x branch.

Martin Sebor added a comment - 02/Apr/08 05:37 PM
The latest Intel compiler understands all the gcc built-ins with the exception of __builtin_memmove:
$ cat t.c && icc -V t.c || icc -V -D__builtin_memmove=__builtin_memcpy
int main ()
{
    char a [1];
    char b [2];
    __builtin_memcpy (a, b , sizeof a);
    __builtin_memcmp (a, b , sizeof a);
    __builtin_memset (a, 0, sizeof a);
    __builtin_strlen (a);

    __builtin_memmove (a, b , sizeof a);
}
Intel(R) C Compiler for applications running on IA-32, Version 10.1    Build 20070913 Package ID: l_cc_p_10.1.008
Copyright (C) 1985-2007 Intel Corporation.  All rights reserved.

Edison Design Group C/C++ Front End, version 3.8 (Sep 13 2007 22:20:59)
Copyright 1988-2006 Edison Design Group, Inc.

t.c(10): warning #266: function "__builtin_memmove" declared implicitly
      __builtin_memmove (a, b , sizeof a);
      ^

GNU ld version 2.17.50.0.18-1 20070731
/tmp/icc5J6ZvI.o: In function `main':
t.c:(.text+0x25): undefined reference to `__builtin_memmove'
Intel(R) C Compiler for applications running on IA-32, Version 10.1    Build 20070913 Package ID: l_cc_p_10.1.008
Copyright (C) 1985-2007 Intel Corporation.  All rights reserved.

Martin Sebor added a comment - 02/Apr/08 06:36 PM
The this thread for a discussion of the built-ins in Intel C++.

Martin Sebor added a comment - 04/Apr/08 03:49 AM
need more time for benchmarking.

Martin Sebor added a comment - 04/Apr/08 03:51 AM
Need to benchmark the difference between the __builtin_xxx() intrinsics and the "ordinary" functions that the compiler also treats as intrinsics but generates different code for, as pointed out in the discussion thread above.

Farid Zaripov added a comment - 17/Apr/08 09:44 AM