title: Can't set stack boundary gcc
body: <p>My c code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  foo()
  {
    char buffer[8];
  }
  
  main()
  {
    foo();
    return 0;
  }
  </code></pre>
  
  <p>I compile it using <code>gcc -ggdb -mpreferred-stack-boundary=2 -o bar bar.c</code></p>
  
  <p>When I load it using <code>GDB ./bar</code> I see that inside the foo function the code is:</p>
  
  <pre><code>sub $0x0c,$esp
  </code></pre>
  
  <p>Why is this happening?</p>
  
  <p>I want to buffer to take 8 bytes in the stack so it should be <code>sub $0x8,$esp</code>!</p>
  
  <p>Why can't I set stack boundary to 4 bytes?</p>
  
  <p>Help!</p>