Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread Honza
2012/4/3 Michael Van Canneyt mich...@freepascal.org: On Tue, 3 Apr 2012, waldo kitty wrote: On 4/3/2012 09:57, michael.vancann...@wisa.be wrote: On Tue, 3 Apr 2012, fred f wrote: I need to set up LIBOVERLAY_SCROLLBAR=0 on Ubuntu 64bit, but there LIBC is not supported and therefore I am

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread michael . vancanneyt
On Wed, 4 Apr 2012, Honza wrote: 2012/4/3 Michael Van Canneyt mich...@freepascal.org: On Tue, 3 Apr 2012, waldo kitty wrote: On 4/3/2012 09:57, michael.vancann...@wisa.be wrote: On Tue, 3 Apr 2012, fred f wrote: I need to set up LIBOVERLAY_SCROLLBAR=0 on Ubuntu 64bit, but there LIBC

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread Honza
2012/4/4 michael.vancann...@wisa.be: Thank you for the help. Unfortunately I'm now confused even more. I believe it's my fault, not yours. You can always modify them (it's just data in memory), but modifying them will only change your private view of the variables. The changes you make will

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread michael . vancanneyt
On Wed, 4 Apr 2012, Honza wrote: 2012/4/4 michael.vancann...@wisa.be: Thank you for the help. Unfortunately I'm now confused even more. I believe it's my fault, not yours. You can always modify them (it's just data in memory), but modifying them will only change your private view of the

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread Honza
2012/4/4 michael.vancann...@wisa.be: Not the current. The EXTERNAL variable environ, i.e. the one that the kernel passed on, which cannot be modified. You can only modify your local copy. 14:00 myname@tux64:~/tmp/c$ ls a.c b.c 14:00 myname@tux64:~/tmp/c$ cat a.c #include stdlib.h #include

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread michael . vancanneyt
On Wed, 4 Apr 2012, Honza wrote: 2012/4/4 michael.vancann...@wisa.be: Not the current. The EXTERNAL variable environ, i.e. the one that the kernel passed on, which cannot be modified. You can only modify your local copy. 14:00 myname@tux64:~/tmp/c$ ls a.c b.c 14:00 myname@tux64:~/tmp/c$

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread Honza
2012/4/4 michael.vancann...@wisa.be: Output of strace: brk(0)                                  = 0x21a5000 brk(0x21c6000)                = 0x21c6000 write(1, a2: MYVALUE\n, 12a2: MYVALUE )   = 12 execve(./b.out, [0], [/* 57 vars */]) = 0 brk(0)                = 0x189e000

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread michael . vancanneyt
On Wed, 4 Apr 2012, Honza wrote: 2012/4/4 michael.vancann...@wisa.be: Output of strace: brk(0)                                  = 0x21a5000 brk(0x21c6000)                = 0x21c6000 write(1, a2: MYVALUE\n, 12a2: MYVALUE )   = 12 execve(./b.out, [0], [/* 57 vars */]) = 0 brk(0)              

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread waldo kitty
On 4/4/2012 08:02, Honza wrote: 2012/4/4michael.vancann...@wisa.be: Not the current. The EXTERNAL variable environ, i.e. the one that the kernel passed on, which cannot be modified. You can only modify your local copy. 14:00 myname@tux64:~/tmp/c$ ls a.c b.c [trim] 14:00

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread Honza
2012/4/4 michael.vancann...@wisa.be: I do not agree with this interpretation. First of all, you are calling execv() in your code, not execve(). That libc changes this to execve() is IMHO not permissible. So all bets and conclusions are off from that point onwards. Why not permissible? The

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread michael . vancanneyt
On Wed, 4 Apr 2012, Honza wrote: 2012/4/4 michael.vancann...@wisa.be: I do not agree with this interpretation. First of all, you are calling execv() in your code, not execve(). That libc changes this to execve() is IMHO not permissible. So all bets and conclusions are off from that point

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-04 Thread Marco van de Voort
On Wed, Apr 04, 2012 at 04:22:24PM +0200, michael.vancann...@wisa.be wrote: I think you'll find that the environment block is copied as soon as you add a new environment variable. Afaik BSD copies it in the startup code before main() executes. --

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-03 Thread michael . vancanneyt
On Tue, 3 Apr 2012, fred f wrote: Hi! I need to set up LIBOVERLAY_SCROLLBAR=0 on Ubuntu 64bit, but there LIBC is not supported and therefore I am looking for SetEnv which I can use on 64bit Linux. SysUtils contains only GetEnvironmentVariable, but not Set... That's not how it works on

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-03 Thread Marco van de Voort
On Tue, Apr 03, 2012 at 03:57:01PM +0200, michael.vancann...@wisa.be wrote: supported and therefore I am looking for SetEnv which I can use on 64bit Linux. SysUtils contains only GetEnvironmentVariable, but not Set... That's not how it works on Unix/Linux. You must always set up

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-03 Thread michael . vancanneyt
On Tue, 3 Apr 2012, Marco van de Voort wrote: On Tue, Apr 03, 2012 at 03:57:01PM +0200, michael.vancann...@wisa.be wrote: supported and therefore I am looking for SetEnv which I can use on 64bit Linux. SysUtils contains only GetEnvironmentVariable, but not Set... That's not how it works

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-03 Thread fred f
Hi guys, I try to start itself again with this code, but it doesn't work: IF GetEnvironmentVariable('LIBOVERLAY_SCROLLBAR') '0' THEN begin mProc := TProcess.Create(NIL); mProc.CommandLine := GetExeName; mProc.Environment.Add('LIBOVERLAY_SCROLLBAR=0');

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-03 Thread Andrew Haines
On 04/03/12 11:04, fred f wrote: Hi guys, I try to start itself again with this code, but it doesn't work: IF GetEnvironmentVariable('LIBOVERLAY_SCROLLBAR') '0' THEN begin mProc := TProcess.Create(NIL); mProc.CommandLine := GetExeName;

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-03 Thread Andrew Haines
On 04/03/12 09:57, michael.vancann...@wisa.be wrote: You must always set up environment variables before a program starts. When starting a process, the environment for that process is started and is then immutable for the duration of the process. What you can do is execute the same

Re: [Lazarus] SetEnv on Linux 64bit

2012-04-03 Thread waldo kitty
On 4/3/2012 17:12, Michael Van Canneyt wrote: On Tue, 3 Apr 2012, waldo kitty wrote: On 4/3/2012 09:57, michael.vancann...@wisa.be wrote: That's not how it works on Unix/Linux. You must always set up environment variables before a program starts. When starting a process, the environment for