title: Multiple definitions when linking. collect2: error ld returned 1 exit status
body: <p>I am having problems compiling Emacs 23.3 Release Candidate 2:</p>
  
  <p>I run <code>autogen.sh</code>, <code>./configure</code>, <code>make</code> and finally <code>make install</code> where I get this error:</p>
  
  <pre><code> gcc -std=gnu99     -I. -I../src -I../lib -I/home/john/bin/emacs/rc/emacs-24.3/lib-src -I/home/john/opt/emacs/rc/emacs-24.3/lib-src/../src -I/home/
  john/bin/emacs/rc/emacs-24.3/lib-src/../lib  -Wl,-znocombreloc   -g3 -O2 -DEMACS_NAME="\"GNU Emacs\"" \
            -DVERSION="\"24.3\"" /home/john/bin/emacs/rc/emacs-24.3/lib-src/etags.c \
            regex.o ../lib/libgnu.a  -o etags
  regex.o: In function `stpncpy':
  /usr/include/bits/string3.h:160: multiple definition of `stpncpy'
  /tmp/ccntBfBN.o:/usr/include/bits/string3.h:160: first defined here
  regex.o: In function `realpath':
  /usr/include/bits/stdlib.h:37: multiple definition of `realpath'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:37: first defined here
  regex.o: In function `ptsname_r':
  /usr/include/bits/stdlib.h:53: multiple definition of `ptsname_r'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:53: first defined here
  regex.o: In function `wctomb':
  /usr/include/bits/stdlib.h:74: multiple definition of `wctomb'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:74: first defined here
  regex.o: In function `mbstowcs':
  /usr/include/bits/stdlib.h:95: multiple definition of `mbstowcs'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:95: first defined here
  regex.o: In function `wcstombs':
  /usr/include/bits/stdlib.h:114: multiple definition of `wcstombs'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:114: first defined here
  regex.o: In function `read':
  /usr/include/bits/unistd.h:35: multiple definition of `read'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:35: first defined here
  regex.o: In function `pread':
  /usr/include/bits/unistd.h:57: multiple definition of `pread'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:57: first defined here
  regex.o: In function `pread64':
  /usr/include/bits/unistd.h:77: multiple definition of `pread64'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:77: first defined here
  regex.o: In function `readlink':
  /usr/include/bits/unistd.h:99: multiple definition of `readlink'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:99: first defined here
  regex.o: In function `readlinkat':
  /usr/include/bits/unistd.h:121: multiple definition of `readlinkat'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:121: first defined here
  regex.o: In function `getcwd':
  /usr/include/bits/unistd.h:136: multiple definition of `getcwd'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:136: first defined here
  regex.o: In function `getwd':
  /usr/include/bits/unistd.h:150: multiple definition of `getwd'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:150: first defined here
  regex.o: In function `confstr':
  /usr/include/bits/unistd.h:165: multiple definition of `confstr'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:165: first defined here
  regex.o: In function `getgroups':
  /usr/include/bits/unistd.h:181: multiple definition of `getgroups'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:181: first defined here
  regex.o: In function `ttyname_r':
  /usr/include/bits/unistd.h:197: multiple definition of `ttyname_r'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:197: first defined here
  regex.o: In function `getlogin_r':
  /usr/include/bits/unistd.h:213: multiple definition of `getlogin_r'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:213: first defined here
  regex.o: In function `gethostname':
  /usr/include/bits/unistd.h:230: multiple definition of `gethostname'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:230: first defined here
  regex.o: In function `getdomainname':
  /usr/include/bits/unistd.h:248: multiple definition of `getdomainname'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:248: first defined here
  ../lib/libgnu.a(c-strcasecmp.o): In function `stpncpy':
  /usr/include/bits/string3.h:160: multiple definition of `stpncpy'
  /tmp/ccntBfBN.o:/usr/include/bits/string3.h:160: first defined here
  ../lib/libgnu.a(c-strcasecmp.o): In function `realpath':
  /usr/include/bits/stdlib.h:37: multiple definition of `realpath'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:37: first defined here
  ../lib/libgnu.a(c-strcasecmp.o): In function `ptsname_r':
  /usr/include/bits/stdlib.h:53: multiple definition of `ptsname_r'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:53: first defined here
  ../lib/libgnu.a(c-strcasecmp.o): In function `wctomb':
  /usr/include/bits/stdlib.h:74: multiple definition of `wctomb'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:74: first defined here
  ../lib/libgnu.a(c-strcasecmp.o): In function `mbstowcs':
  /usr/include/bits/stdlib.h:95: multiple definition of `mbstowcs'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:95: first defined here
  ../lib/libgnu.a(c-strcasecmp.o): In function `wcstombs':
  /usr/include/bits/stdlib.h:114: multiple definition of `wcstombs'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:114: first defined here
  ../lib/libgnu.a(c-strncasecmp.o): In function `stpncpy':
  /usr/include/bits/string3.h:160: multiple definition of `stpncpy'
  /tmp/ccntBfBN.o:/usr/include/bits/string3.h:160: first defined here
  ../lib/libgnu.a(c-strncasecmp.o): In function `realpath':
  /usr/include/bits/stdlib.h:37: multiple definition of `realpath'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:37: first defined here
  ../lib/libgnu.a(c-strncasecmp.o): In function `ptsname_r':
  /usr/include/bits/stdlib.h:53: multiple definition of `ptsname_r'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:53: first defined here
  ../lib/libgnu.a(c-strncasecmp.o): In function `wctomb':
  /usr/include/bits/stdlib.h:74: multiple definition of `wctomb'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:74: first defined here
  ../lib/libgnu.a(c-strncasecmp.o): In function `mbstowcs':
  /usr/include/bits/stdlib.h:95: multiple definition of `mbstowcs'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:95: first defined here
  ../lib/libgnu.a(c-strncasecmp.o): In function `wcstombs':
  /usr/include/bits/stdlib.h:114: multiple definition of `wcstombs'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:114: first defined here
  ../lib/libgnu.a(getopt.o): In function `stpncpy':
  /usr/include/bits/string3.h:160: multiple definition of `stpncpy'
  /tmp/ccntBfBN.o:/usr/include/bits/string3.h:160: first defined here
  ../lib/libgnu.a(getopt.o): In function `realpath':
  /usr/include/bits/stdlib.h:37: multiple definition of `realpath'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:37: first defined here
  ../lib/libgnu.a(getopt.o): In function `ptsname_r':
  /usr/include/bits/stdlib.h:53: multiple definition of `ptsname_r'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:53: first defined here
  ../lib/libgnu.a(getopt.o): In function `wctomb':
  /usr/include/bits/stdlib.h:74: multiple definition of `wctomb'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:74: first defined here
  ../lib/libgnu.a(getopt.o): In function `mbstowcs':
  /usr/include/bits/stdlib.h:95: multiple definition of `mbstowcs'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:95: first defined here
  ../lib/libgnu.a(getopt.o): In function `wcstombs':
  /usr/include/bits/stdlib.h:114: multiple definition of `wcstombs'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:114: first defined here
  ../lib/libgnu.a(getopt.o): In function `gets':
  /usr/include/bits/stdio2.h:94: multiple definition of `gets'
  /tmp/ccntBfBN.o:/usr/include/bits/stdio2.h:94: first defined here
  ../lib/libgnu.a(getopt.o): In function `fgets':
  /usr/include/bits/stdio2.h:109: multiple definition of `fgets'
  /tmp/ccntBfBN.o:/usr/include/bits/stdio2.h:109: first defined here
  ../lib/libgnu.a(getopt.o): In function `fgets_unlocked':
  /usr/include/bits/stdio2.h:125: multiple definition of `fgets_unlocked'
  /tmp/ccntBfBN.o:/usr/include/bits/stdio2.h:125: first defined here
  ../lib/libgnu.a(getopt.o): In function `read':
  /usr/include/bits/unistd.h:35: multiple definition of `read'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:35: first defined here
  ../lib/libgnu.a(getopt.o): In function `pread':
  /usr/include/bits/unistd.h:57: multiple definition of `pread'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:57: first defined here
  ../lib/libgnu.a(getopt.o): In function `pread64':
  /usr/include/bits/unistd.h:77: multiple definition of `pread64'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:77: first defined here
  ../lib/libgnu.a(getopt.o): In function `readlink':
  /usr/include/bits/unistd.h:99: multiple definition of `readlink'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:99: first defined here
  ../lib/libgnu.a(getopt.o): In function `readlinkat':
  /usr/include/bits/unistd.h:121: multiple definition of `readlinkat'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:121: first defined here
  ../lib/libgnu.a(getopt.o): In function `getcwd':
  /usr/include/bits/unistd.h:136: multiple definition of `getcwd'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:136: first defined here
  ../lib/libgnu.a(getopt.o): In function `getwd':
  /usr/include/bits/unistd.h:150: multiple definition of `getwd'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:150: first defined here
  ../lib/libgnu.a(getopt.o): In function `confstr':
  /usr/include/bits/unistd.h:165: multiple definition of `confstr'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:165: first defined here
  ../lib/libgnu.a(getopt.o): In function `getgroups':
  /usr/include/bits/unistd.h:181: multiple definition of `getgroups'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:181: first defined here
  ../lib/libgnu.a(getopt.o): In function `ttyname_r':
  /usr/include/bits/unistd.h:197: multiple definition of `ttyname_r'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:197: first defined here
  ../lib/libgnu.a(getopt.o): In function `getlogin_r':
  /usr/include/bits/unistd.h:213: multiple definition of `getlogin_r'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:213: first defined here
  ../lib/libgnu.a(getopt.o): In function `gethostname':
  /usr/include/bits/unistd.h:230: multiple definition of `gethostname'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:230: first defined here
  ../lib/libgnu.a(getopt.o): In function `getdomainname':
  /usr/include/bits/unistd.h:248: multiple definition of `getdomainname'
  /tmp/ccntBfBN.o:/usr/include/bits/unistd.h:248: first defined here
  ../lib/libgnu.a(getopt1.o): In function `stpncpy':
  /usr/include/bits/string3.h:160: multiple definition of `stpncpy'
  /tmp/ccntBfBN.o:/usr/include/bits/string3.h:160: first defined here
  ../lib/libgnu.a(getopt1.o): In function `realpath':
  /usr/include/bits/stdlib.h:37: multiple definition of `realpath'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:37: first defined here
  ../lib/libgnu.a(getopt1.o): In function `ptsname_r':
  /usr/include/bits/stdlib.h:53: multiple definition of `ptsname_r'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:53: first defined here
  ../lib/libgnu.a(getopt1.o): In function `wctomb':
  /usr/include/bits/stdlib.h:74: multiple definition of `wctomb'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:74: first defined here
  ../lib/libgnu.a(getopt1.o): In function `mbstowcs':
  /usr/include/bits/stdlib.h:95: multiple definition of `mbstowcs'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:95: first defined here
  ../lib/libgnu.a(getopt1.o): In function `wcstombs':
  /usr/include/bits/stdlib.h:114: multiple definition of `wcstombs'
  /tmp/ccntBfBN.o:/usr/include/bits/stdlib.h:114: first defined here
  ../lib/libgnu.a(getopt1.o): In function `gets':
  /usr/include/bits/stdio2.h:94: multiple definition of `gets'
  /tmp/ccntBfBN.o:/usr/include/bits/stdio2.h:94: first defined here
  ../lib/libgnu.a(getopt1.o): In function `fgets':
  /usr/include/bits/stdio2.h:109: multiple definition of `fgets'
  /tmp/ccntBfBN.o:/usr/include/bits/stdio2.h:109: first defined here
  ../lib/libgnu.a(getopt1.o): In function `fgets_unlocked':
  /usr/include/bits/stdio2.h:125: multiple definition of `fgets_unlocked'
  /tmp/ccntBfBN.o:/usr/include/bits/stdio2.h:125: first defined here
  collect2: error: ld returned 1 exit status
  make[1]: *** [etags] Error 1
  make[1]: Leaving directory `/home/john/bin/emacs/rc/emacs-24.3/lib-src'
  make: *** [lib-src] Error 2
  </code></pre>
  
  <p>I have never seen an error like this before. What does this mean?</p>