[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcl-devel] cannot trap sbrk
From: |
Andrey G. Grozin |
Subject: |
Re: [Gcl-devel] cannot trap sbrk |
Date: |
Tue, 4 Nov 2008 22:19:29 +0600 (NOVT) |
User-agent: |
Alpine 1.10 (LRH 962 2008-03-14) |
Hello *,
In fact, a conftest program in configure fails due to a syntax error. The
conftest.c is
#include "confdefs.h"
#include <syscall.h>
#include <sys/personality.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc,char *argv[],char *envp[]) {
FILE *f;
long pers;
pers=personality(-1);
if (!(pers & ADDR_NO_RANDOMIZE)) {
personality(pers | ADDR_NO_RANDOMIZE);
execve(*argv,argv,envp);
}
if (!(f=fopen("conftest1","w")))
return -1;
fprintf(f,"%u",sbrk(0));
return 0;
}
confdefs.h contains (among other stuff)
#define ADDR_NO_RANDOMIZE 0x40000
/usr/include/sys/personality.h (which is included later) contains
enum
{
ADDR_NO_RANDOMIZE = 0x0040000,
....
Here ADDR_NO_RANDOMIZE is replaced by the number 0x40000, and gcc
(correctly) reports a syntax error.
Any idea how to get rid of this #define in confdefs.h?
Andrey