EC4006

1 minute readReference

Synopsis

No LD_PRELOAD found in child environment.

Description

LD_PRELOAD is an environment variable that specifies one or more libraries that the run-time library loader (ld.so) will load in a new process before loading other shared libraries. This is the hook used by electrify to allow monitoring of file system updates and processes creation by any process that is distributed to an agent for execution. If this variable is not set in the child process, electrify will be unable to monitor the associated processs, which may result in incorrect build results.

The LD_PRELOAD environment variable (used to attach electrify monitoring code to locally run processes) is undefined.

Reasons

electrify automatically adds this variable to the root process invoked in an electrify build (typically your build tool, like SCons or jam). If this message is printed, then it means that process (or another process in the process tree) has removed the LD_PRELOAD variable from the environment before starting another process. Usually this is a result of overly-aggressive management of the environment block, such as creating the environment for child processes completely from scratch using a list of known-to-be-required variables like PATH; rather than explicitly removing just the LD_PRELOAD variable itself. Some build tools, like SCons, operate this way by default.

Fixes

Verify that the LD_PRELOAD variable is passed to child processes. If you are using SCons, you may need to modify your SConstruct file to explicitly start from the original SCons environment:

import os
env = Environment(ENV = os.environ)

For other tools you will need a different solution.