#49053 Enable -flto for ds
Closed: wontfix Opened by firstyear.

Enabling link time optimisation will allow gcc to better optimise our binaries and libraries. In the future lto is required for security features like control flow integrity. lto is not as simple as a single switch, as it may or may not cause certain symbols to not be exported correctly, so it may take some annotations and guidance to enable.


https://gcc.gnu.org/onlinedocs/gccint/LTO-Overview.html

When do we need this fix? 1.3.6 or later?

Can be later, it's not urgent.

Thanks! Set to 1.3.7 backlog.

Metadata Update from @firstyear:
- Issue assigned to firstyear
- Issue set to the milestone: 1.3.7 backlog

Metadata Update from @firstyear:
- Issue close_status updated to: None
- Issue tagged with: Investigate, Performance

Metadata Update from @firstyear:
- Custom field reviewstatus adjusted to review

Metadata Update from @mreynolds:
- Custom field reviewstatus adjusted to ack (was: review)

commit 3d61db9a2c34062e64b4692540877646292b2b1b
To ssh://git@pagure.io/389-ds-base.git
0804c43..620d037 master -> master

@mreynolds Next step is to add this as a compiler flag to the rpm specfile. What's the best way to do this do you think?

Actually, it look like flto blows away debug info for now, so I think we shouldn't enable it by default yet.

This change breaks rpm build:

Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/389-ds-base-1.3.7.0-20170508git620d0375d.fc26.x86_64
RPM build errors:
error: Installed (but unpackaged) file(s) found:
   /usr/lib64/dirsrv/libldaputil.so
   /usr/lib64/dirsrv/libldaputil.so.0
   /usr/lib64/dirsrv/libldaputil.so.0.0.0
    Installed (but unpackaged) file(s) found:
   /usr/lib64/dirsrv/libldaputil.so
   /usr/lib64/dirsrv/libldaputil.so.0
   /usr/lib64/dirsrv/libldaputil.so.0.0.0

Metadata Update from @firstyear:
- Custom field reviewstatus adjusted to review (was: ack)

Metadata Update from @vashirov:
- Custom field reviewstatus adjusted to ack (was: review)

Thanks for fixing this William, pushed:

c4b896d..6fc82a3 master -> master

Metadata Update from @mreynolds:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/2112

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: fixed)

Metadata