This series implements the changes proposed in #5153 . All changes are implemented in a way that is fully backward compatible, i.E. the current install tree is kept as default. Also drrun / drfrondenlib and the DynamoRIOConfig cmake scripts are fully backward compatible and can handle both layouts.
The new install layout can be activated by setting -DUSE_GNU_DIR_LAYOUT=ON
.
A sample debianization (packaging for Debian ) is also provided (that could either live here in the project, or in a dedicated debian-only project). Sample Debian packages can be build using:
# assuming we are in the DR root
mk-build-deps -i -t "apt-get -y"
dpkg-buildpackage -us -uc -b
When installing these packages, also a find_package(DynamoRIO)
properly works.
For further details, have a look at the commit messages.
Open aspects:
- Injection via drrun / drfrondendlib: Currently, we specialize on
-root /
and hard-coded path. This works well, but path for all architectures have to be hard-coded into the binaries. It would be better to first look in the provided DR root. If it is no DR root, continue by searching well-known library install paths. This would simplify packaging for other distributions as well. - Cross-compiling for armhf:
undefined symbol: GLOBAL DEFAULT UND __aeabi_ldiv0
- conf.d style client registering: Instead of using the drrun32 / drrun64 lists, client registration should happen by placing the
<tool>.drrun<XX>
in/etc/DynamoRIO/tools.d/
, so DR clients can also easily be packaged and are automatically detected by drrun. A client would then just drop aclient.drrun64
in this folder.