Sanal Bellek sonunda özel bir bölüm içeren bir program oluşturmak istiyorum. Bu yüzden böyle bir bağlayıcı komut dosyası bir şey yapmak istedim:Başlangıç yığın işaretleyicisini, bağlayıcı komut dosyasıyla açıkça belirle
/* ... */
.section_x 0xffff0000 : {
_start_section_x = .;
. = . + 0xffff;
_end_section_x = .;
}
sorun olduğunu gcc/ld/glibc bunun bilinen bir örtüşür bile, bir 32 bitlik bir uygulama için varsayılan olarak bu konumda yığını yüklemek gibi görünüyor Bölüm. Yukarıdaki kod sıfır yığını dışında bir istisna neden olur. Bağlayıcıya yığın için başka bir sanal bellek konumu kullanması için bir yol var mı? (Ayrıca, yığının sanal belleğin bu bölümünü kapsamadığından emin olmak isterim ...).
Hedefiniz hakkında daha fazla bilgi vermeniz gerekir. İlk kayıt içeriği (yığın konumunu belirleyen) hedefe bağlıdır. –
Bu bir kol-8 sistemidir (32 bit modunda derleme). Bir gcc 4.7.0 toolchain ile bir linux 3.10 çekirdek kullanıyorum. – HardcoreHenry