Uso di __seg_fs in GCC

di il
2 risposte

Uso di __seg_fs in GCC

Variabili riferite al segmento fs: o gs: in GCC.

In GCC esiste la direttiva __seg_fs e _seg_gs in una dichiarazione di variabile,
ad esempio:
long __seg_fs Conta

domanda: 1):
la sintassi corretta e'
long __seg_fs Conta
oppure
__seg_fs long Conta

domanda 2):
ho provato a compilare il seguente codice con gcc 6.4 e riga di richiamo gcc
"gcc -g3 -O2 -c prova.c -w -fexceptions -march=i386 -std=c99 -pedantic -fno-builtin "

#include <stdlib.h>
#include <stdio.h>
#include <stddef.h>
#include <unistd.h>

#ifdef __SEG_FS
__seg_fs int AppInt; // non cambia se scrivo "int __seg_fs AppInt
#endif

void main(void)
{
AppInt++;
AppInt++;
}

Come posso riuscire a copmpilare con __seg_fs?

2 Risposte

  • Re: Uso di __seg_fs in GCC

    Giusto per capire:

    1) a che ti serve?
    2) che cosa dice la documentazione?
    3) su che SO?
    4) hai provato con qualche altra versione di GCC? Piu' vecchia o piu' nuova?
  • Re: Uso di __seg_fs in GCC

    Non vorrei dire, ma si tratta della (malefica) segmentazione dei processori Intel, che è viva e lotta insieme a noi, tutt'oggi, ma molto temperata, anche nella versione a 32 bit, per gli offset appunto a 32 bit ("segmentoni").
    Dunque riguarda il caso in cui vuoi sviluppare software per la modalità reale (cioè ... un programma DOS pre-Windows NT, diciamo fino a Windows 98), oppure una porzione di kernel multithread a 32 bit (per i 64 i segmenti "classici" sono ignorati a favore di un segmentone unico a 64 bit che parte da zero).


    Versione breve: cosa stai cercando di fare, e perchè?
Devi accedere o registrarti per scrivere nel forum
2 risposte