On 2017-03-22 10:51 +0000, O Mahony, Billy wrote: > However when I compile the first example in > this LWN article https://lwn.net/Articles/691932/ with gcc-6 C compiler it fails with (error: redefinition of > 'foo'...) . The document <https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Function-Multiversioning.html> said: With the GNU *C++* front end, for x86 targets, you may specify multiple versions of the function. FMV doesn't work with C FE. In C, __attribute__((target("sse4.2"))) just means to compile this function with -msse4.2, see <https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Common-Function-Attributes.html>. -- Xi Ruoyao <ryxi@xxxxxxxxxxxxxxxxx> School of Aerospace Science and Technology, Xidian University