From 37ebbdee6c80e282d7927edb2684e13274e45441 Mon Sep 17 00:00:00 2001 From: Ryan Prichard Date: Tue, 24 Jul 2018 12:37:24 -0700 Subject: [PATCH] Revert part of "Stop versioning NDK stubs pre-M." This reverts commit e67144e302dffa7c005f6ea201bab8fbd8b0e447. Keep the getApiLevelsMap function and keep using it in shouldUseVersionScript. It seems useful. (Also, keeping it probably avoids an AOSP->internal merge conflict...) Bug: https://github.com/android-ndk/ndk/issues/750 Test: m out/soong/ndk.timestamp, examine dynsym in stubs Change-Id: Icbb26fc46a9a1dc99f22af195468f08713c4f216 --- cc/ndk_library.go | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/cc/ndk_library.go b/cc/ndk_library.go index db9632575..3bffacd42 100644 --- a/cc/ndk_library.go +++ b/cc/ndk_library.go @@ -157,10 +157,10 @@ func getFirstGeneratedVersion(firstSupportedVersion string, platformVersion int) } func shouldUseVersionScript(ctx android.BaseContext, stub *stubDecorator) (bool, error) { - // https://github.com/android-ndk/ndk/issues/622 - // The loader spews warnings to stderr on L-MR1 when loading a library that - // has symbol versioning. - firstVersionSupportingRelease := 23 + // unversioned_until is normally empty, in which case we should use the version script. + if String(stub.properties.Unversioned_until) == "" { + return true, nil + } if String(stub.properties.Unversioned_until) == "current" { if stub.properties.ApiLevel == "current" { @@ -174,29 +174,14 @@ func shouldUseVersionScript(ctx android.BaseContext, stub *stubDecorator) (bool, return true, nil } - version, err := android.ApiStrToNum(ctx, stub.properties.ApiLevel) - if err != nil { - return true, err - } - - // unversioned_until is normally empty, in which case we use the version - // script as long as we are on a supported API level. - if String(stub.properties.Unversioned_until) == "" { - return version >= firstVersionSupportingRelease, nil - } - unversionedUntil, err := android.ApiStrToNum(ctx, String(stub.properties.Unversioned_until)) if err != nil { return true, err } - if unversionedUntil < firstVersionSupportingRelease { - return true, fmt.Errorf("unversioned_until must be at least %d", - firstVersionSupportingRelease) - } - - if version < firstVersionSupportingRelease { - return false, nil + version, err := android.ApiStrToNum(ctx, stub.properties.ApiLevel) + if err != nil { + return true, err } return version >= unversionedUntil, nil