Quantcast
Channel: Gradle Forums - Latest posts
Viewing all articles
Browse latest Browse all 19931

How to order object files for a linker task cpp-application (say linkDebug or linkRelease)

$
0
0

Hello!

I’m porting some of our applications from make file system to Gradle based system. In our legacy make system, we control the order of object files to control static initialization order.

Say,

 gcc -o output Foo.o Bar.o 

// controlling the linking order, to guarantee Foo objects get initialized before Bar

Whereas in Gradle, the system controls the compiling and the linking order of object files.

I see LinkExecutable expose some methods (e…g, source) that will help me add new objects to the LinkerArgs.

Is it possible for me to control the linking order of object files, to help me get around static initialization issues?

I had some luck manipulating the compile order, but didn’t seem to make an impact on the linker order of objects, still running into the issue.

   binaries.configureEach {
           def compileTask = compileTask.get()
           compileTask.source.from fileTree(dir: "src/main/cpp", include: "**/foo.cpp")
           compileTask.source.from fileTree(dir: "src/main/cpp", include: "**/bar.cpp")   
    }

Viewing all articles
Browse latest Browse all 19931

Trending Articles