Quando compiliamo il programma c con gcc, dobbiamo inserire l'opzione "-z execstack" per abilitare l'attacco di overflow dello stack. La domanda che voglio porre è come gcc lo implementa. Senza questa opzione, in che modo gcc protegge lo stack? Per favore, spiegami in dettaglio se possibile.