title: Different GNU ABI Tag for same C library version?
body: <p>I have two ELF binaries on my Linux machine. When I run <code>file</code> on them I receive the following:</p>
  
  <p><code>File#1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.2.0, not stripped</code></p>
  
  <p><code>File#2: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.2.5, stripped</code></p>
  
  <p>Now as far as I understand it, the <code>for GNU/Linux 2.2.X</code> part stems from the <code>.note.ABI-tag</code> section of the binary and is added by the linker. The resulting value of <code>2.2.X</code> depends on the version of the C library that is linked to the binary and describes the lowest ABI version that this C library version supports - meaning that File #1 will be supported on machines with a Linux kernel >= 2.2.0 and File #2 on machines with a Linux kernel >= 2.2.5. (Is that correct, or am I already wrong here?)</p>
  
  <p>I would suppose that the differences in the ABI tag would stem from two different C library versions contained in the two binaries. But when I examine the strings of the binaries, both of them contain the string <code>glibc 2.3.2</code>.</p>
  
  <p>How is this possible? It seems unreasonable to me, that a patch of some sort to the GNU C Library which didn't result in a version number change would change the supported ABI version...</p>