Page MenuHomePhabricator

build: make object rule for eolian tests a versioned conditional
ClosedPublic

Authored by zmike on Jul 16 2018, 3:29 AM.

Details

Summary

automake 1.16 changed the naming of object files:

  • When subdir-objects is in effect, Automake will now construct shorter object file names when no programs and libraries name clashes are encountered. This should make the discouraged use of 'foo_SHORTNAME' unnecessary in many cases.

https://lists.gnu.org/archive/html/info-gnu/2018-02/msg00008.html

this requires that object-specific rules must be changed to match the new
naming scheme if newer automake is being used. the $am__api_version contains
the version string of the automake version used during autoreconf, so this
should be checked during configure time in order to generate the correct
makefile rule for that automake version

other similar rules should be changed in the same way

note that this conditional speculates on behavior of automake versions past
1.16, which are not yet released and thus may change, meaning that this issue may
reoccur in future automake versions

Diff Detail

Repository
rEFL core/efl
Branch
master
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 6902
zmike created this revision.Jul 16 2018, 3:29 AM

It seems that this patch has no reviewers specified. If you are unsure who can review your patch, please check this wiki page and see if anyone can be added: https://phab.enlightenment.org/w/maintainers_reviewers/

zmike requested review of this revision.Jul 16 2018, 3:29 AM
zmike planned changes to this revision.Jul 16 2018, 6:34 AM

This still fails in some places...

zmike updated this revision to Diff 15702.Jul 16 2018, 11:58 AM
zmike retitled this revision from build: avoid using platform-specific object file naming in eolian tests to build: make object rule for eolian tests a versioned conditional.
zmike edited the summary of this revision. (Show Details)

update

I will profess to a large degree of autotools ignorance, but is seems like this will silently break with an autotools update at some point in the future when the api isn't 1.16 anymore? Shouldn't the test try to match >= 1.16 somehow?

devilhorns requested changes to this revision.Jul 17 2018, 1:58 AM

I have to agree with @ManMower here ... this is going to fall down hard with autofoo > 1.16 (ie: in the future). Can we change this to a "test" rather than a grep ??

This revision now requires changes to proceed.Jul 17 2018, 1:58 AM
zmike added a comment.Jul 17 2018, 7:36 AM

While I agree with the premise of these replies, how can we know that the behavior won't change again for automake post-1.16? It's not released yet so we can only guess.

zmike updated this revision to Diff 15709.Jul 17 2018, 1:47 PM
zmike edited the summary of this revision. (Show Details)
zmike added reviewers: stefan_schmidt, bu5hm4n.
zmike added projects: Testing, Restricted Project.

add questionable forward-portability

zmike removed projects: Restricted Project, Testing.Jul 17 2018, 1:48 PM
ManMower accepted this revision.Jul 17 2018, 8:22 PM

Won't this break when auto-tools 2.0 is a thing? ;)

(I really hope we're using meson by then)

devilhorns accepted this revision.Jul 17 2018, 8:22 PM

This (to me) looks better. I understand that future versions may change behaviour, but this patch at least lets us test for versions in a more portable way.

This revision is now accepted and ready to land.Jul 17 2018, 8:22 PM
zmike added a comment.Jul 18 2018, 7:18 AM

Won't this break when auto-tools 2.0 is a thing? ;)

(I really hope we're using meson by then)

Ideally we're using meson by then. I don't think any old versions of EFL still build, so I don't have any super long-term expectations that this will continue to build either.

stefan_schmidt accepted this revision.Jul 24 2018, 3:14 AM
This revision was automatically updated to reflect the committed changes.