)]}'
{"id":"LineageOS%2Fandroid_bionic~223065","triplet_id":"LineageOS%2Fandroid_bionic~lineage-16.0~Ic3ad7095ddae7ea1039cb6a18603d5cde8a16152","project":"LineageOS/android_bionic","branch":"lineage-16.0","hashtags":[],"change_id":"Ic3ad7095ddae7ea1039cb6a18603d5cde8a16152","subject":"linker: Add support for dynamic SHIM libraries","status":"MERGED","created":"2018-08-08 22:14:40.000000000","updated":"2018-08-23 05:02:36.000000000","submitted":"2018-08-23 05:02:36.000000000","submitter":{"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"223065-1535000556968-777f46a5","meta_rev_id":"6a9483b8aa24da3dc207bdede5a57d239beb7289","_number":223065,"virtual_id_number":223065,"owner":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"actions":{},"labels":{"Verified":{"approved":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"all":[{"value":1,"date":"2018-08-22 18:14:09.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"value":0,"_account_id":17257,"name":"Cosmin Tanislav","email":"demonsingur@gmail.com","username":"Demon000","avatars":[{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"value":1,"date":"2018-08-23 05:02:34.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},{"value":0,"_account_id":11883,"name":"Luca Stefani","email":"luca.stefani.ge1@gmail.com","username":"luca020400","avatars":[{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Code-Review":{"approved":{"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"all":[{"value":1,"date":"2018-08-22 18:14:09.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"value":1,"date":"2018-08-23 05:02:36.000000000","post_submit":true,"permitted_voting_range":{"min":1,"max":2},"_account_id":17257,"name":"Cosmin Tanislav","email":"demonsingur@gmail.com","username":"Demon000","avatars":[{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"value":2,"date":"2018-08-23 05:02:34.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},{"value":0,"_account_id":11883,"name":"Luca Stefani","email":"luca.stefani.ge1@gmail.com","username":"luca020400","avatars":[{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{"-2":"Do not submit","-1":"I would prefer that you didn\u0027t submit this"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0},"CI":{"all":[{"value":0,"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"value":0,"_account_id":17257,"name":"Cosmin Tanislav","email":"demonsingur@gmail.com","username":"Demon000","avatars":[{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"value":0,"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},{"value":0,"_account_id":11883,"name":"Luca Stefani","email":"luca.stefani.ge1@gmail.com","username":"luca020400","avatars":[{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{"-1":"Fail"," 0":"No score","+1":"Pass"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":10258,"name":"dianlujitao","email":"dianlujitao@lineageos.org","username":"dianlujitao","avatars":[{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"reviewers":{"REVIEWER":[{"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},{"_account_id":10258,"name":"dianlujitao","email":"dianlujitao@lineageos.org","username":"dianlujitao","avatars":[{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"_account_id":11883,"name":"Luca Stefani","email":"luca.stefani.ge1@gmail.com","username":"luca020400","avatars":[{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"_account_id":17257,"name":"Cosmin Tanislav","email":"demonsingur@gmail.com","username":"Demon000","avatars":[{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2018-08-12 04:41:56.000000000","updated_by":{"_account_id":10258,"name":"dianlujitao","email":"dianlujitao@lineageos.org","username":"dianlujitao","avatars":[{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"reviewer":{"_account_id":10258,"name":"dianlujitao","email":"dianlujitao@lineageos.org","username":"dianlujitao","avatars":[{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"state":"REVIEWER"},{"updated":"2018-08-15 06:28:55.000000000","updated_by":{"_account_id":11883,"name":"Luca Stefani","email":"luca.stefani.ge1@gmail.com","username":"luca020400","avatars":[{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"reviewer":{"_account_id":11883,"name":"Luca Stefani","email":"luca.stefani.ge1@gmail.com","username":"luca020400","avatars":[{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"state":"REVIEWER"},{"updated":"2018-08-22 16:02:20.000000000","updated_by":{"_account_id":17257,"name":"Cosmin Tanislav","email":"demonsingur@gmail.com","username":"Demon000","avatars":[{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"reviewer":{"_account_id":17257,"name":"Cosmin Tanislav","email":"demonsingur@gmail.com","username":"Demon000","avatars":[{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"state":"REVIEWER"},{"updated":"2018-08-23 05:02:34.000000000","updated_by":{"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"reviewer":{"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"ec31567b8647986693d1535b8a5ded355d1cead8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-08 22:14:40.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"230a48518e58524b9290c9168fbc9fc6afbd207b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10258,"name":"dianlujitao","email":"dianlujitao@lineageos.org","username":"dianlujitao","avatars":[{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-12 04:41:56.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"2d11d59d5e1df0d4bc8e1d3740c2ecfe3faf9afb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-14 09:10:03.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"e12f4e2c1d3c973703de95797e4dc42f31ca01bd","author":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-14 09:11:28.000000000","message":"Patch Set 3:\n\nI squashed \"linker: Move shims to TARGET_LD_SHIM_LIBS\",\nand redid the whole commit message with a proper squash history.\n\nThe code remains identical to the last PS\u0027s stack.","accounts_in_message":[],"_revision_number":3},{"id":"85edf880190d0f9b7d8d7630cb66f33a14b94cad","author":{"_account_id":11883,"name":"Luca Stefani","email":"luca.stefani.ge1@gmail.com","username":"luca020400","avatars":[{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-15 06:28:55.000000000","message":"Patch Set 3: Code-Review-2\n\nThis still needs some changes present in the latest lineage-15.1 branch","accounts_in_message":[],"_revision_number":3},{"id":"dc9036e10fc41fa7881e167a6f0db60f53d818af","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-15 07:47:59.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"af79751585f77c761f16680548deac5ed8c76291","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-15 08:07:41.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"db65beb51f8c94d4d7603e2b482b6d0877773c40","author":{"_account_id":11883,"name":"Luca Stefani","email":"luca.stefani.ge1@gmail.com","username":"luca020400","avatars":[{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/e0d7fe321be897bf85cf3d240cbd3be9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-15 08:09:51.000000000","message":"Patch Set 5: -Code-Review","accounts_in_message":[],"_revision_number":5},{"id":"b88dc3bf88f579006777ea268b8b6dea6e2c6426","author":{"_account_id":17257,"name":"Cosmin Tanislav","email":"demonsingur@gmail.com","username":"Demon000","avatars":[{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a4a1c70fcdfa00ccdfc7fc2d39028a98.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-22 16:02:20.000000000","message":"Patch Set 5: Verified+1 Code-Review+1","accounts_in_message":[],"_revision_number":5},{"id":"bb8794442ac428196f2e8cac55d7ce03f87d4d86","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-22 18:13:49.000000000","message":"Uploaded patch set 6: Patch Set 5 was rebased.","accounts_in_message":[],"_revision_number":6},{"id":"8c94b4183ba3b523239dccf856e27f84c377c356","author":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2018-08-22 18:14:09.000000000","message":"Patch Set 6: Verified+1 Code-Review+1","accounts_in_message":[],"_revision_number":6},{"id":"c88107195be5c3962ac35170c0662db436db6f84","author":{"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"date":"2018-08-23 05:02:34.000000000","message":"Patch Set 6: Verified+1 Code-Review+2","accounts_in_message":[],"_revision_number":6},{"id":"8e7c62407792a47306dbd87cc811a7140beec8aa","tag":"autogenerated:gerrit:merged","author":{"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"date":"2018-08-23 05:02:36.000000000","message":"Change has been successfully merged by Rashed Abdel-Tawab","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"a2cd38e1074e89768095a5f0131f129e9a408d22","revisions":{"8e60bc8462aba85d450ece57b3388f9a70f7d44a":{"kind":"REWORK","_number":1,"created":"2018-08-08 22:14:40.000000000","uploader":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/65/223065/1","fetch":{"anonymous http":{"url":"https://github.com/LineageOS/android_bionic","ref":"refs/changes/65/223065/1","commands":{"Branch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/1 \u0026\u0026 git checkout -b change-223065 FETCH_HEAD","Checkout":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/LineageOS/android_bionic refs/changes/65/223065/1","Reset To":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"114abba8cdf76a0acd67aac1e2016da907384586","subject":"linker: Make platform text relocations denial optional","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/114abba8cdf76a0acd67aac1e2016da907384586"}]}],"author":{"name":"Christopher R. Palmer","email":"crpalmer@gmail.com","date":"2017-04-08 20:40:01.000000000","tz":120},"committer":{"name":"Adrian DC","email":"radian.dc@gmail.com","date":"2018-08-08 22:14:28.000000000","tz":120},"subject":"linker: Add support for dynamic SHIM libraries","message":"linker: Add support for dynamic SHIM libraries\n\n * Adapt to latest AOSP bionic linker changes\n * Additional header to avoid unused function\n\nlinker: Add support for dynamic \"shim\" libs\n\nAdd a new environment variable\n\nLD_SHIM_LIBS\n\nthat is a colon (\":\") separated list of vertical bar (\"|\") separated pairs.\nThe pairs are the name for a soinfo reference (executable or shared library)\nfollowed by the name of the shim library to load.  For example:\n\nLD_SHIM_LIBS\u003drmt_storage|libshim_ioprio.so:/system/lib/libicuuv.so|libshim_icu53.so\n\nwill instruct the linker to load the dynamic library libshim_ioprio.so\nwhenver rmt_storage is executed [*] and will load libshim_icu53.so whenever\nany executable or other shared library links against /system/lib/libicuuv.so.\n\nThere are no restrictions against circular references.  In this example,\nlibshim_icu53.so can link against libicuuv.so which provides a simple and\nconvenient means of adding compatibility symbols.\n\n[*] Note that the absolute path is not available to the linker and therefore\nusing the name of executables does depend on the invocation and therefore\nshould only be used if absolutely necessary.  That is, running\n/system/bin/rmt_storage would not load any shim libs in this example because\nit does not match the name of the invocation of the command.\n\nIf you have trouble determining the sonames being loaded, you can also set\nthe environment variable LD_DEBUG\u003d1 which will cause additional information\nto be logged to help trace the detection of the shim libs.\n\nChange-Id: I0ef80fa466167f7bcb7dac90842bef1c3cf879b6\n\nlinker: Fix the fact that shim libs do not properly call constructors\n\nChange-Id: I34333e13443a154e675b853fa41442351bc4243a\n\nlinker: Don\u0027t try to walk the g_active_shim_libs when doing dlsym\n\nThis is a bug in the original shim_lib implementation which was\ndoing the shim lib resolution both when loading the libraries\nand when doing the dynamic symbol resolution.\n\nChange-Id: Ib2df0498cf551b3bbd37d7c351410b9908eb1795\n\nRevert \"Revert \"linker: Reset the active shim libs each time we do a dlopen\"\"\n\nThis reverts commit fd0140b028dedabc572f4659cc015edfeee3cd60.\n\nChange-Id: I42b3acfcdc6b84251a396b9e42604bb5685196bd\n\nMake shim lib load failure non-fatal.\n\nInstead, print an appropriate warning message. Aborting symbol\nresolution on shim lib load failure leads to weird symbol lookup\nfailures, because symbols in libraries referenced after the one loading\nthe shim won\u0027t be loaded anymore without a log message stating why that\nhappened.\n\nChange-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16143\n\nbionic: Do not allow LD_SHIM_LIBS for setuid executables\n\nThat\u0027s really not safe...\n\nChange-Id: If79af951830966fc21812cd0f60a8998a752a941\n\nbionic: linker: Load shim libs *before* the self-linked libs\n\nBy loading them earlier, this allows us to override a symbol in\na library that is being directly linked.\n\nI believe this explains why some people have had problems shimming\none lib but when the changet he shim to be against a different\nlib it magically works.\n\nIt also makes it possible to override some symbols that were\nnearly impossible to override before this change.  For example, it is\npretty much impossible to override a symbol in libutils without\nthis change because it\u0027s loaded almost everywhere so no matter\nwhere you try to place the shimming, it will be too late and\nthe other symbol will have priority.\n\nIn particularly, this is necessary to be able to correctly\nshim the VectorImpl symbols for dlx.\n\nChange-Id: I461ca416bc288e28035352da00fde5f34f8d9ffa\n\nlinker: Allow text-relocs for x86 (only)\n\nThis effectively reverts\n\nhttps://android.googlesource.com/platform/bionic/+/e4ad91f86a47b39612e030a162f4793cb3421d31%5E%21/#F0\n\nfor x86 platforms.  Unfortunately, this seems like it is required\nif we are going to support ffmpeg.  The ffmpeg team decreed that they\nrequire text relocations for x86 (only) and that they would not\nfix the fact that android 6.0 makes ffmpeg unusable on x86:\n\nhttps://trac.ffmpeg.org/ticket/4928\n\nChange-Id: I68397f4d62f4f6acd8e0d41b7ecdc115969b890a\n\nlinker: Update find_library call for shimlibs\n\ncommits 0cdef7e7f3c6837b56a969120d9098463d1df8d8\n\"Respect caller DT_RUNPATH in dlopen().\"\nand 42d5fcb9f494eb45de3b6bf759f4a18076e84728\n\"Introducing linker namespaces\"\nadded new arguments to find_library, add them here.\n\nChange-Id: I8f35a45b00d14f8b2ce01a0a96d2dc7759be04a6\n\nlinker: Update LD_SHIM_LIBS parser function\n\n * Upgrade the code using the same changes as\n    42d5fcb9f494eb45de3b6bf759f4a18076e84728\n    bda20e78f0f314dbbf0f0bbcf0740cf2d6a4b85e\n\nChange-Id: Ic8be0871945bd9feccd0f94a6770f3cc78a70a0f\n\nInject shim libs as if they were DT_NEEDED.\n\nThe previous separate approach had one flaw: If the shim lib requires\nanother lib that\u0027s already loaded, find_library_internal() would return\nthe previously loaded copy, but the later load action would fail as the\nELF reader map of the initial loading round was already discarded and\nthus a new ElfReader instance for the soinfo instance was created, which\ndidn\u0027t know about the previous reading/loading state.\n\nChange-Id: Ib224dbd35d114197097e3dee14a077cc9130fedb\n\nlinker: Make platform text relocations denial enabled by default\n\n * msm8960 variant to support relocations by default\n\n * Partial revert \"Remove textrels support for platform libs\"\n    commit 8068786ae67835291521e52f39c695e40f3ad20d.\n\nChange-Id: I994ab1a600a0b237b496ceebe2dd54febc28a6bd\n\norigChange-Id: Ib9216bcc651d8d38999c593babb94d76dc1dbc95\n\nlinker: load shims prior to dt_needed check\n\nThis allows shims to override existing symbols, not just\ninject new symbols.\n\nChange-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16152\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/8e60bc8462aba85d450ece57b3388f9a70f7d44a"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/8e60bc8462aba85d450ece57b3388f9a70f7d44a"}]},"parents_data":[{"branch_name":"refs/heads/lineage-16.0","commit_id":"114abba8cdf76a0acd67aac1e2016da907384586","is_merged_in_target_branch":false,"change_id":"I994ab1a600a0b237b496ceebe2dd54febc28a6bd","change_number":223064,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/lineage-16.0"},"11b51f0e0e765251ecc057b5cbf899ee332ae37c":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2018-08-12 04:41:56.000000000","uploader":{"_account_id":10258,"name":"dianlujitao","email":"dianlujitao@lineageos.org","username":"dianlujitao","avatars":[{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f63be36ff090f17abde0116fc7033f52.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/65/223065/2","fetch":{"anonymous http":{"url":"https://github.com/LineageOS/android_bionic","ref":"refs/changes/65/223065/2","commands":{"Branch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/2 \u0026\u0026 git checkout -b change-223065 FETCH_HEAD","Checkout":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/LineageOS/android_bionic refs/changes/65/223065/2","Reset To":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"11750b2387b159d3af1b81d7f5e87ba4c3a599c8","subject":"linker: Make platform text relocations denial optional","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/11750b2387b159d3af1b81d7f5e87ba4c3a599c8"}]}],"author":{"name":"Christopher R. Palmer","email":"crpalmer@gmail.com","date":"2017-04-08 20:40:01.000000000","tz":120},"committer":{"name":"dianlujitao","email":"dianlujitao@lineageos.org","date":"2018-08-12 03:59:50.000000000","tz":480},"subject":"linker: Add support for dynamic SHIM libraries","message":"linker: Add support for dynamic SHIM libraries\n\n * Adapt to latest AOSP bionic linker changes\n * Additional header to avoid unused function\n\nlinker: Add support for dynamic \"shim\" libs\n\nAdd a new environment variable\n\nLD_SHIM_LIBS\n\nthat is a colon (\":\") separated list of vertical bar (\"|\") separated pairs.\nThe pairs are the name for a soinfo reference (executable or shared library)\nfollowed by the name of the shim library to load.  For example:\n\nLD_SHIM_LIBS\u003drmt_storage|libshim_ioprio.so:/system/lib/libicuuv.so|libshim_icu53.so\n\nwill instruct the linker to load the dynamic library libshim_ioprio.so\nwhenver rmt_storage is executed [*] and will load libshim_icu53.so whenever\nany executable or other shared library links against /system/lib/libicuuv.so.\n\nThere are no restrictions against circular references.  In this example,\nlibshim_icu53.so can link against libicuuv.so which provides a simple and\nconvenient means of adding compatibility symbols.\n\n[*] Note that the absolute path is not available to the linker and therefore\nusing the name of executables does depend on the invocation and therefore\nshould only be used if absolutely necessary.  That is, running\n/system/bin/rmt_storage would not load any shim libs in this example because\nit does not match the name of the invocation of the command.\n\nIf you have trouble determining the sonames being loaded, you can also set\nthe environment variable LD_DEBUG\u003d1 which will cause additional information\nto be logged to help trace the detection of the shim libs.\n\nChange-Id: I0ef80fa466167f7bcb7dac90842bef1c3cf879b6\n\nlinker: Fix the fact that shim libs do not properly call constructors\n\nChange-Id: I34333e13443a154e675b853fa41442351bc4243a\n\nlinker: Don\u0027t try to walk the g_active_shim_libs when doing dlsym\n\nThis is a bug in the original shim_lib implementation which was\ndoing the shim lib resolution both when loading the libraries\nand when doing the dynamic symbol resolution.\n\nChange-Id: Ib2df0498cf551b3bbd37d7c351410b9908eb1795\n\nRevert \"Revert \"linker: Reset the active shim libs each time we do a dlopen\"\"\n\nThis reverts commit fd0140b028dedabc572f4659cc015edfeee3cd60.\n\nChange-Id: I42b3acfcdc6b84251a396b9e42604bb5685196bd\n\nMake shim lib load failure non-fatal.\n\nInstead, print an appropriate warning message. Aborting symbol\nresolution on shim lib load failure leads to weird symbol lookup\nfailures, because symbols in libraries referenced after the one loading\nthe shim won\u0027t be loaded anymore without a log message stating why that\nhappened.\n\nChange-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16143\n\nbionic: Do not allow LD_SHIM_LIBS for setuid executables\n\nThat\u0027s really not safe...\n\nChange-Id: If79af951830966fc21812cd0f60a8998a752a941\n\nbionic: linker: Load shim libs *before* the self-linked libs\n\nBy loading them earlier, this allows us to override a symbol in\na library that is being directly linked.\n\nI believe this explains why some people have had problems shimming\none lib but when the changet he shim to be against a different\nlib it magically works.\n\nIt also makes it possible to override some symbols that were\nnearly impossible to override before this change.  For example, it is\npretty much impossible to override a symbol in libutils without\nthis change because it\u0027s loaded almost everywhere so no matter\nwhere you try to place the shimming, it will be too late and\nthe other symbol will have priority.\n\nIn particularly, this is necessary to be able to correctly\nshim the VectorImpl symbols for dlx.\n\nChange-Id: I461ca416bc288e28035352da00fde5f34f8d9ffa\n\nlinker: Allow text-relocs for x86 (only)\n\nThis effectively reverts\n\nhttps://android.googlesource.com/platform/bionic/+/e4ad91f86a47b39612e030a162f4793cb3421d31%5E%21/#F0\n\nfor x86 platforms.  Unfortunately, this seems like it is required\nif we are going to support ffmpeg.  The ffmpeg team decreed that they\nrequire text relocations for x86 (only) and that they would not\nfix the fact that android 6.0 makes ffmpeg unusable on x86:\n\nhttps://trac.ffmpeg.org/ticket/4928\n\nChange-Id: I68397f4d62f4f6acd8e0d41b7ecdc115969b890a\n\nlinker: Update find_library call for shimlibs\n\ncommits 0cdef7e7f3c6837b56a969120d9098463d1df8d8\n\"Respect caller DT_RUNPATH in dlopen().\"\nand 42d5fcb9f494eb45de3b6bf759f4a18076e84728\n\"Introducing linker namespaces\"\nadded new arguments to find_library, add them here.\n\nChange-Id: I8f35a45b00d14f8b2ce01a0a96d2dc7759be04a6\n\nlinker: Update LD_SHIM_LIBS parser function\n\n * Upgrade the code using the same changes as\n    42d5fcb9f494eb45de3b6bf759f4a18076e84728\n    bda20e78f0f314dbbf0f0bbcf0740cf2d6a4b85e\n\nChange-Id: Ic8be0871945bd9feccd0f94a6770f3cc78a70a0f\n\nInject shim libs as if they were DT_NEEDED.\n\nThe previous separate approach had one flaw: If the shim lib requires\nanother lib that\u0027s already loaded, find_library_internal() would return\nthe previously loaded copy, but the later load action would fail as the\nELF reader map of the initial loading round was already discarded and\nthus a new ElfReader instance for the soinfo instance was created, which\ndidn\u0027t know about the previous reading/loading state.\n\nChange-Id: Ib224dbd35d114197097e3dee14a077cc9130fedb\n\nlinker: Make platform text relocations denial enabled by default\n\n * msm8960 variant to support relocations by default\n\n * Partial revert \"Remove textrels support for platform libs\"\n    commit 8068786ae67835291521e52f39c695e40f3ad20d.\n\nChange-Id: I994ab1a600a0b237b496ceebe2dd54febc28a6bd\n\norigChange-Id: Ib9216bcc651d8d38999c593babb94d76dc1dbc95\n\nlinker: load shims prior to dt_needed check\n\nThis allows shims to override existing symbols, not just\ninject new symbols.\n\nChange-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16152\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/11b51f0e0e765251ecc057b5cbf899ee332ae37c"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/11b51f0e0e765251ecc057b5cbf899ee332ae37c"}]},"parents_data":[{"branch_name":"refs/heads/lineage-16.0","commit_id":"11750b2387b159d3af1b81d7f5e87ba4c3a599c8","is_merged_in_target_branch":false,"change_id":"I994ab1a600a0b237b496ceebe2dd54febc28a6bd","change_number":223064,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/lineage-16.0"},"20bbafafd6f5c6886dc6cf30f723766dd4cfa53a":{"kind":"REWORK","_number":3,"created":"2018-08-14 09:10:03.000000000","uploader":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/65/223065/3","fetch":{"anonymous http":{"url":"https://github.com/LineageOS/android_bionic","ref":"refs/changes/65/223065/3","commands":{"Branch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/3 \u0026\u0026 git checkout -b change-223065 FETCH_HEAD","Checkout":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/LineageOS/android_bionic refs/changes/65/223065/3","Reset To":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"11750b2387b159d3af1b81d7f5e87ba4c3a599c8","subject":"linker: Make platform text relocations denial optional","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/11750b2387b159d3af1b81d7f5e87ba4c3a599c8"}]}],"author":{"name":"Christopher R. Palmer","email":"crpalmer@gmail.com","date":"2017-04-08 20:40:01.000000000","tz":120},"committer":{"name":"Adrian DC","email":"radian.dc@gmail.com","date":"2018-08-14 08:48:54.000000000","tz":120},"subject":"linker: Add support for dynamic SHIM libraries","message":"linker: Add support for dynamic SHIM libraries\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Tue Nov 3 16:44:44 2015 -0500\n\n    linker: Add support for dynamic \"shim\" libs\n\n    Add a new environment variable\n\n    LD_SHIM_LIBS\n\n    that is a colon (\":\") separated list of vertical bar (\"|\") separated pairs.\n    The pairs are the name for a soinfo reference (executable or shared library)\n    followed by the name of the shim library to load.  For example:\n\n    LD_SHIM_LIBS\u003drmt_storage|libshim_ioprio.so:/system/lib/libicuuv.so|libshim_icu53.so\n\n    will instruct the linker to load the dynamic library libshim_ioprio.so\n    whenver rmt_storage is executed [*] and will load libshim_icu53.so whenever\n    any executable or other shared library links against /system/lib/libicuuv.so.\n\n    There are no restrictions against circular references.  In this example,\n    libshim_icu53.so can link against libicuuv.so which provides a simple and\n    convenient means of adding compatibility symbols.\n\n    [*] Note that the absolute path is not available to the linker and therefore\n    using the name of executables does depend on the invocation and therefore\n    should only be used if absolutely necessary.  That is, running\n    /system/bin/rmt_storage would not load any shim libs in this example because\n    it does not match the name of the invocation of the command.\n\n    If you have trouble determining the sonames being loaded, you can also set\n    the environment variable LD_DEBUG\u003d1 which will cause additional information\n    to be logged to help trace the detection of the shim libs.\n\n    Change-Id: I0ef80fa466167f7bcb7dac90842bef1c3cf879b6\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Nov 15 14:26:32 2015 -0500\n\n    linker: Fix the fact that shim libs do not properly call constructors\n\n    Change-Id: I34333e13443a154e675b853fa41442351bc4243a\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Tue Dec 1 07:10:36 2015 -0500\n\n    linker: Don\u0027t try to walk the g_active_shim_libs when doing dlsym\n\n    This is a bug in the original shim_lib implementation which was\n    doing the shim lib resolution both when loading the libraries\n    and when doing the dynamic symbol resolution.\n\n    Change-Id: Ib2df0498cf551b3bbd37d7c351410b9908eb1795\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Nov 29 08:28:10 2015 -0500\n\n    linker: Reset the active shim libs each time we do a dlopen\n\n    We use the active libs to avoid recursively trying to load the\n    same library:\n\n    A -\u003e shimlibs add B -\u003e depends on A -\u003e shimlibs add B -\u003e ...\n\n    However, when we repeatedly dlopen the same library we need\n    to reset the active shim libs to avoid failing to add B the\n    second time we dlopen A.\n\n    Change-Id: I27580e3d6a53858e8bca025d6c85f981cffbea06\n\nAuthor: Danny Baumann \u003cdannybaumann@web.de\u003e\nDate:   Fri Dec 11 10:29:16 2015 +0100\n\n    Make shim lib load failure non-fatal.\n\n    Instead, print an appropriate warning message. Aborting symbol\n    resolution on shim lib load failure leads to weird symbol lookup\n    failures, because symbols in libraries referenced after the one loading\n    the shim won\u0027t be loaded anymore without a log message stating why that\n    happened.\n\n    Change-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16143\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sat Dec 12 06:10:09 2015 -0500\n\n    bionic: Do not allow LD_SHIM_LIBS for setuid executables\n\n    That\u0027s really not safe...\n\n    Change-Id: If79af951830966fc21812cd0f60a8998a752a941\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Feb 14 11:38:44 2016 -0500\n\n    bionic: linker: Load shim libs *before* the self-linked libs\n\n    By loading them earlier, this allows us to override a symbol in\n    a library that is being directly linked.\n\n    I believe this explains why some people have had problems shimming\n    one lib but when the changet he shim to be against a different\n    lib it magically works.\n\n    It also makes it possible to override some symbols that were\n    nearly impossible to override before this change.  For example, it is\n    pretty much impossible to override a symbol in libutils without\n    this change because it\u0027s loaded almost everywhere so no matter\n    where you try to place the shimming, it will be too late and\n    the other symbol will have priority.\n\n    In particularly, this is necessary to be able to correctly\n    shim the VectorImpl symbols for dlx.\n\n    Change-Id: I461ca416bc288e28035352da00fde5f34f8d9ffa\n\nAuthor: Chirayu Desai \u003cchirayudesai1@gmail.com\u003e\nDate:   Thu Aug 25 19:02:41 2016 +0530\n\n    linker: Update find_library call for shimlibs\n\n    commits 0cdef7e7f3c6837b56a969120d9098463d1df8d8\n    \"Respect caller DT_RUNPATH in dlopen().\"\n    and 42d5fcb9f494eb45de3b6bf759f4a18076e84728\n    \"Introducing linker namespaces\"\n    added new arguments to find_library, add them here.\n\n    Change-Id: I8f35a45b00d14f8b2ce01a0a96d2dc7759be04a6\n\nAuthor: Chippa-a \u003cvusal1372@gmail.com\u003e\nDate:   Sat Aug 27 14:56:30 2016 +0200\n\n    linker: Update LD_SHIM_LIBS parser function\n\n     * Upgrade the code using the same changes as\n        42d5fcb9f494eb45de3b6bf759f4a18076e84728\n        bda20e78f0f314dbbf0f0bbcf0740cf2d6a4b85e\n\n    Change-Id: Ic8be0871945bd9feccd0f94a6770f3cc78a70a0f\n\nAuthor: Danny Baumann \u003cdannybaumann@web.de\u003e\nDate:   Wed Sep 7 16:54:06 2016 +0200\n\n    Inject shim libs as if they were DT_NEEDED.\n\n    The previous separate approach had one flaw: If the shim lib requires\n    another lib that\u0027s already loaded, find_library_internal() would return\n    the previously loaded copy, but the later load action would fail as the\n    ELF reader map of the initial loading round was already discarded and\n    thus a new ElfReader instance for the soinfo instance was created, which\n    didn\u0027t know about the previous reading/loading state.\n\n    Change-Id: Ib224dbd35d114197097e3dee14a077cc9130fedb\n\nAuthor: jrior001 \u003cjriordan001@gmail.com\u003e\nDate:   Fri Oct 7 19:36:51 2016 -0400\n\n    linker: load shims prior to DT_NEEDED check\n\n    This allows shims to override existing symbols, not just\n    inject new symbols.\n\n    Change-Id: Ib9216bcc651d8d38999c593babb94d76dc1dbc95\n\nAuthor: Adrian DC \u003cradian.dc@gmail.com\u003e\nDate: Sat, 8 Apr 2017 22:40:01 +0200\n\n     * Adapt to latest AOSP Oreo bionic linker changes\n     * Additional header to avoid unused function\n\n    Change-Id: Ib9216bcc651d8d38999c593babb94d76dc1dbc95\n\nAuthor: Paul Keith \u003cjavelinanddart@gmail.com\u003e\nDate:   Thu Feb 15 21:57:33 2018 +0100\n\n    linker: Move shims to TARGET_LD_SHIM_LIBS\n\n    * To reduce security exposure, let\u0027s set this at compile time,\n      and block off all the code unless the board flag is set\n\n    Change-Id: Ieec5f5d9e0f39a798fd48eae037ecffe9502474c\n\nChange-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16152\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/20bbafafd6f5c6886dc6cf30f723766dd4cfa53a"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/20bbafafd6f5c6886dc6cf30f723766dd4cfa53a"}]},"parents_data":[{"branch_name":"refs/heads/lineage-16.0","commit_id":"11750b2387b159d3af1b81d7f5e87ba4c3a599c8","is_merged_in_target_branch":false,"change_id":"I994ab1a600a0b237b496ceebe2dd54febc28a6bd","change_number":223064,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/lineage-16.0"},"780477b1a71ffbb55aa8c5e9fa53f30f35d7f752":{"kind":"REWORK","_number":4,"created":"2018-08-15 07:47:59.000000000","uploader":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/65/223065/4","fetch":{"anonymous http":{"url":"https://github.com/LineageOS/android_bionic","ref":"refs/changes/65/223065/4","commands":{"Branch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/4 \u0026\u0026 git checkout -b change-223065 FETCH_HEAD","Checkout":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/LineageOS/android_bionic refs/changes/65/223065/4","Reset To":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"11750b2387b159d3af1b81d7f5e87ba4c3a599c8","subject":"linker: Make platform text relocations denial optional","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/11750b2387b159d3af1b81d7f5e87ba4c3a599c8"}]}],"author":{"name":"Christopher R. Palmer","email":"crpalmer@gmail.com","date":"2017-04-08 20:40:01.000000000","tz":120},"committer":{"name":"Adrian DC","email":"radian.dc@gmail.com","date":"2018-08-15 07:47:38.000000000","tz":120},"subject":"linker: Add support for dynamic SHIM libraries","message":"linker: Add support for dynamic SHIM libraries\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Tue Nov 3 16:44:44 2015 -0500\n\n    linker: Add support for dynamic \"shim\" libs\n\n    Add a new environment variable\n\n    LD_SHIM_LIBS\n\n    that is a colon (\":\") separated list of vertical bar (\"|\") separated pairs.\n    The pairs are the name for a soinfo reference (executable or shared library)\n    followed by the name of the shim library to load.  For example:\n\n    LD_SHIM_LIBS\u003drmt_storage|libshim_ioprio.so:/system/lib/libicuuv.so|libshim_icu53.so\n\n    will instruct the linker to load the dynamic library libshim_ioprio.so\n    whenver rmt_storage is executed [*] and will load libshim_icu53.so whenever\n    any executable or other shared library links against /system/lib/libicuuv.so.\n\n    There are no restrictions against circular references.  In this example,\n    libshim_icu53.so can link against libicuuv.so which provides a simple and\n    convenient means of adding compatibility symbols.\n\n    [*] Note that the absolute path is not available to the linker and therefore\n    using the name of executables does depend on the invocation and therefore\n    should only be used if absolutely necessary.  That is, running\n    /system/bin/rmt_storage would not load any shim libs in this example because\n    it does not match the name of the invocation of the command.\n\n    If you have trouble determining the sonames being loaded, you can also set\n    the environment variable LD_DEBUG\u003d1 which will cause additional information\n    to be logged to help trace the detection of the shim libs.\n\n    Change-Id: I0ef80fa466167f7bcb7dac90842bef1c3cf879b6\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Nov 15 14:26:32 2015 -0500\n\n    linker: Fix the fact that shim libs do not properly call constructors\n\n    Change-Id: I34333e13443a154e675b853fa41442351bc4243a\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Tue Dec 1 07:10:36 2015 -0500\n\n    linker: Don\u0027t try to walk the g_active_shim_libs when doing dlsym\n\n    This is a bug in the original shim_lib implementation which was\n    doing the shim lib resolution both when loading the libraries\n    and when doing the dynamic symbol resolution.\n\n    Change-Id: Ib2df0498cf551b3bbd37d7c351410b9908eb1795\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Nov 29 08:28:10 2015 -0500\n\n    linker: Reset the active shim libs each time we do a dlopen\n\n    We use the active libs to avoid recursively trying to load the\n    same library:\n\n    A -\u003e shimlibs add B -\u003e depends on A -\u003e shimlibs add B -\u003e ...\n\n    However, when we repeatedly dlopen the same library we need\n    to reset the active shim libs to avoid failing to add B the\n    second time we dlopen A.\n\n    Change-Id: I27580e3d6a53858e8bca025d6c85f981cffbea06\n\nAuthor: Danny Baumann \u003cdannybaumann@web.de\u003e\nDate:   Fri Dec 11 10:29:16 2015 +0100\n\n    Make shim lib load failure non-fatal.\n\n    Instead, print an appropriate warning message. Aborting symbol\n    resolution on shim lib load failure leads to weird symbol lookup\n    failures, because symbols in libraries referenced after the one loading\n    the shim won\u0027t be loaded anymore without a log message stating why that\n    happened.\n\n    Change-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16143\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sat Dec 12 06:10:09 2015 -0500\n\n    bionic: Do not allow LD_SHIM_LIBS for setuid executables\n\n    That\u0027s really not safe...\n\n    Change-Id: If79af951830966fc21812cd0f60a8998a752a941\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Feb 14 11:38:44 2016 -0500\n\n    bionic: linker: Load shim libs *before* the self-linked libs\n\n    By loading them earlier, this allows us to override a symbol in\n    a library that is being directly linked.\n\n    I believe this explains why some people have had problems shimming\n    one lib but when the changet he shim to be against a different\n    lib it magically works.\n\n    It also makes it possible to override some symbols that were\n    nearly impossible to override before this change.  For example, it is\n    pretty much impossible to override a symbol in libutils without\n    this change because it\u0027s loaded almost everywhere so no matter\n    where you try to place the shimming, it will be too late and\n    the other symbol will have priority.\n\n    In particularly, this is necessary to be able to correctly\n    shim the VectorImpl symbols for dlx.\n\n    Change-Id: I461ca416bc288e28035352da00fde5f34f8d9ffa\n\nAuthor: Chirayu Desai \u003cchirayudesai1@gmail.com\u003e\nDate:   Thu Aug 25 19:02:41 2016 +0530\n\n    linker: Update find_library call for shimlibs\n\n    commits 0cdef7e7f3c6837b56a969120d9098463d1df8d8\n    \"Respect caller DT_RUNPATH in dlopen().\"\n    and 42d5fcb9f494eb45de3b6bf759f4a18076e84728\n    \"Introducing linker namespaces\"\n    added new arguments to find_library, add them here.\n\n    Change-Id: I8f35a45b00d14f8b2ce01a0a96d2dc7759be04a6\n\nAuthor: Chippa-a \u003cvusal1372@gmail.com\u003e\nDate:   Sat Aug 27 14:56:30 2016 +0200\n\n    linker: Update LD_SHIM_LIBS parser function\n\n     * Upgrade the code using the same changes as\n        42d5fcb9f494eb45de3b6bf759f4a18076e84728\n        bda20e78f0f314dbbf0f0bbcf0740cf2d6a4b85e\n\n    Change-Id: Ic8be0871945bd9feccd0f94a6770f3cc78a70a0f\n\nAuthor: Danny Baumann \u003cdannybaumann@web.de\u003e\nDate:   Wed Sep 7 16:54:06 2016 +0200\n\n    Inject shim libs as if they were DT_NEEDED.\n\n    The previous separate approach had one flaw: If the shim lib requires\n    another lib that\u0027s already loaded, find_library_internal() would return\n    the previously loaded copy, but the later load action would fail as the\n    ELF reader map of the initial loading round was already discarded and\n    thus a new ElfReader instance for the soinfo instance was created, which\n    didn\u0027t know about the previous reading/loading state.\n\n    Change-Id: Ib224dbd35d114197097e3dee14a077cc9130fedb\n\nAuthor: jrior001 \u003cjriordan001@gmail.com\u003e\nDate:   Fri Oct 7 19:36:51 2016 -0400\n\n    linker: load shims prior to DT_NEEDED check\n\n    This allows shims to override existing symbols, not just\n    inject new symbols.\n\n    Change-Id: Ib9216bcc651d8d38999c593babb94d76dc1dbc95\n\nAuthor: Adrian DC \u003cradian.dc@gmail.com\u003e\nDate: Sat, 8 Apr 2017 22:40:01 +0200\n\n     * Adapt to latest AOSP Oreo bionic linker changes\n     * Additional header to avoid unused function\n\n    Change-Id: Ib9216bcc651d8d38999c593babb94d76dc1dbc95\n\nAuthor: Paul Keith \u003cjavelinanddart@gmail.com\u003e\nDate:   Thu Feb 15 21:57:33 2018 +0100\n\n    linker: Move shims to TARGET_LD_SHIM_LIBS\n\n    * To reduce security exposure, let\u0027s set this at compile time,\n      and block off all the code unless the board flag is set\n\n    Change-Id: Ieec5f5d9e0f39a798fd48eae037ecffe9502474c\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Fri Jun 8 09:48:17 2018 +0800\n\n    linker: Provide soinfo path of the shimmed binary\n\n    This is a forward port of part of the original change that was missed out\n    since the initial port of the shim logic to O.\n\n    Change-Id: I1f7ff98472cfef5cb2d2bcb303082784898cd0c6\n\nChange-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16152\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/780477b1a71ffbb55aa8c5e9fa53f30f35d7f752"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/780477b1a71ffbb55aa8c5e9fa53f30f35d7f752"}]},"parents_data":[{"branch_name":"refs/heads/lineage-16.0","commit_id":"11750b2387b159d3af1b81d7f5e87ba4c3a599c8","is_merged_in_target_branch":false,"change_id":"I994ab1a600a0b237b496ceebe2dd54febc28a6bd","change_number":223064,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/lineage-16.0"},"8d7fd6e39f8f0e827553c87d4eebb37894335822":{"kind":"REWORK","_number":5,"created":"2018-08-15 08:07:41.000000000","uploader":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/65/223065/5","fetch":{"anonymous http":{"url":"https://github.com/LineageOS/android_bionic","ref":"refs/changes/65/223065/5","commands":{"Branch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/5 \u0026\u0026 git checkout -b change-223065 FETCH_HEAD","Checkout":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/LineageOS/android_bionic refs/changes/65/223065/5","Reset To":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"11750b2387b159d3af1b81d7f5e87ba4c3a599c8","subject":"linker: Make platform text relocations denial optional","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/11750b2387b159d3af1b81d7f5e87ba4c3a599c8"}]}],"author":{"name":"Christopher R. Palmer","email":"crpalmer@gmail.com","date":"2017-04-08 20:40:01.000000000","tz":120},"committer":{"name":"Adrian DC","email":"radian.dc@gmail.com","date":"2018-08-15 08:07:10.000000000","tz":120},"subject":"linker: Add support for dynamic SHIM libraries","message":"linker: Add support for dynamic SHIM libraries\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Tue Nov 3 16:44:44 2015 -0500\n\n    linker: Add support for dynamic \"shim\" libs\n\n    Add a new environment variable\n\n    LD_SHIM_LIBS\n\n    that is a colon (\":\") separated list of vertical bar (\"|\") separated pairs.\n    The pairs are the name for a soinfo reference (executable or shared library)\n    followed by the name of the shim library to load.  For example:\n\n    LD_SHIM_LIBS\u003drmt_storage|libshim_ioprio.so:/system/lib/libicuuv.so|libshim_icu53.so\n\n    will instruct the linker to load the dynamic library libshim_ioprio.so\n    whenver rmt_storage is executed [*] and will load libshim_icu53.so whenever\n    any executable or other shared library links against /system/lib/libicuuv.so.\n\n    There are no restrictions against circular references.  In this example,\n    libshim_icu53.so can link against libicuuv.so which provides a simple and\n    convenient means of adding compatibility symbols.\n\n    [*] Note that the absolute path is not available to the linker and therefore\n    using the name of executables does depend on the invocation and therefore\n    should only be used if absolutely necessary.  That is, running\n    /system/bin/rmt_storage would not load any shim libs in this example because\n    it does not match the name of the invocation of the command.\n\n    If you have trouble determining the sonames being loaded, you can also set\n    the environment variable LD_DEBUG\u003d1 which will cause additional information\n    to be logged to help trace the detection of the shim libs.\n\n    Change-Id: I0ef80fa466167f7bcb7dac90842bef1c3cf879b6\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Nov 15 14:26:32 2015 -0500\n\n    linker: Fix the fact that shim libs do not properly call constructors\n\n    Change-Id: I34333e13443a154e675b853fa41442351bc4243a\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Tue Dec 1 07:10:36 2015 -0500\n\n    linker: Don\u0027t try to walk the g_active_shim_libs when doing dlsym\n\n    This is a bug in the original shim_lib implementation which was\n    doing the shim lib resolution both when loading the libraries\n    and when doing the dynamic symbol resolution.\n\n    Change-Id: Ib2df0498cf551b3bbd37d7c351410b9908eb1795\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Nov 29 08:28:10 2015 -0500\n\n    linker: Reset the active shim libs each time we do a dlopen\n\n    We use the active libs to avoid recursively trying to load the\n    same library:\n\n    A -\u003e shimlibs add B -\u003e depends on A -\u003e shimlibs add B -\u003e ...\n\n    However, when we repeatedly dlopen the same library we need\n    to reset the active shim libs to avoid failing to add B the\n    second time we dlopen A.\n\n    Change-Id: I27580e3d6a53858e8bca025d6c85f981cffbea06\n\nAuthor: Danny Baumann \u003cdannybaumann@web.de\u003e\nDate:   Fri Dec 11 10:29:16 2015 +0100\n\n    Make shim lib load failure non-fatal.\n\n    Instead, print an appropriate warning message. Aborting symbol\n    resolution on shim lib load failure leads to weird symbol lookup\n    failures, because symbols in libraries referenced after the one loading\n    the shim won\u0027t be loaded anymore without a log message stating why that\n    happened.\n\n    Change-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16143\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sat Dec 12 06:10:09 2015 -0500\n\n    bionic: Do not allow LD_SHIM_LIBS for setuid executables\n\n    That\u0027s really not safe...\n\n    Change-Id: If79af951830966fc21812cd0f60a8998a752a941\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Feb 14 11:38:44 2016 -0500\n\n    bionic: linker: Load shim libs *before* the self-linked libs\n\n    By loading them earlier, this allows us to override a symbol in\n    a library that is being directly linked.\n\n    I believe this explains why some people have had problems shimming\n    one lib but when the changet he shim to be against a different\n    lib it magically works.\n\n    It also makes it possible to override some symbols that were\n    nearly impossible to override before this change.  For example, it is\n    pretty much impossible to override a symbol in libutils without\n    this change because it\u0027s loaded almost everywhere so no matter\n    where you try to place the shimming, it will be too late and\n    the other symbol will have priority.\n\n    In particularly, this is necessary to be able to correctly\n    shim the VectorImpl symbols for dlx.\n\n    Change-Id: I461ca416bc288e28035352da00fde5f34f8d9ffa\n\nAuthor: Chirayu Desai \u003cchirayudesai1@gmail.com\u003e\nDate:   Thu Aug 25 19:02:41 2016 +0530\n\n    linker: Update find_library call for shimlibs\n\n    commits 0cdef7e7f3c6837b56a969120d9098463d1df8d8\n    \"Respect caller DT_RUNPATH in dlopen().\"\n    and 42d5fcb9f494eb45de3b6bf759f4a18076e84728\n    \"Introducing linker namespaces\"\n    added new arguments to find_library, add them here.\n\n    Change-Id: I8f35a45b00d14f8b2ce01a0a96d2dc7759be04a6\n\nAuthor: Chippa-a \u003cvusal1372@gmail.com\u003e\nDate:   Sat Aug 27 14:56:30 2016 +0200\n\n    linker: Update LD_SHIM_LIBS parser function\n\n     * Upgrade the code using the same changes as\n        42d5fcb9f494eb45de3b6bf759f4a18076e84728\n        bda20e78f0f314dbbf0f0bbcf0740cf2d6a4b85e\n\n    Change-Id: Ic8be0871945bd9feccd0f94a6770f3cc78a70a0f\n\nAuthor: Danny Baumann \u003cdannybaumann@web.de\u003e\nDate:   Wed Sep 7 16:54:06 2016 +0200\n\n    Inject shim libs as if they were DT_NEEDED.\n\n    The previous separate approach had one flaw: If the shim lib requires\n    another lib that\u0027s already loaded, find_library_internal() would return\n    the previously loaded copy, but the later load action would fail as the\n    ELF reader map of the initial loading round was already discarded and\n    thus a new ElfReader instance for the soinfo instance was created, which\n    didn\u0027t know about the previous reading/loading state.\n\n    Change-Id: Ib224dbd35d114197097e3dee14a077cc9130fedb\n\nAuthor: jrior001 \u003cjriordan001@gmail.com\u003e\nDate:   Fri Oct 7 19:36:51 2016 -0400\n\n    linker: load shims prior to DT_NEEDED check\n\n    This allows shims to override existing symbols, not just\n    inject new symbols.\n\n    Change-Id: Ib9216bcc651d8d38999c593babb94d76dc1dbc95\n\nAuthor: Adrian DC \u003cradian.dc@gmail.com\u003e\nDate: Sat, 8 Apr 2017 22:40:01 +0200\n\n     * Adapt to latest AOSP Oreo bionic linker changes\n     * Additional header to avoid unused function\n\n    Change-Id: Ib9216bcc651d8d38999c593babb94d76dc1dbc95\n\nAuthor: Paul Keith \u003cjavelinanddart@gmail.com\u003e\nDate:   Thu Feb 15 21:57:33 2018 +0100\n\n    linker: Move shims to TARGET_LD_SHIM_LIBS\n\n    * To reduce security exposure, let\u0027s set this at compile time,\n      and block off all the code unless the board flag is set\n\n    Change-Id: Ieec5f5d9e0f39a798fd48eae037ecffe9502474c\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Fri Jun 8 09:48:17 2018 +0800\n\n    linker: Provide soinfo path of the shimmed binary\n\n    This is a forward port of part of the original change that was missed out\n    since the initial port of the shim logic to O.\n\n    Change-Id: I1f7ff98472cfef5cb2d2bcb303082784898cd0c6\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Tue Jun 5 13:36:43 2018 +0800\n\n    linker: Remove unused find_libraries declaration\n\n    commit \"Inject shim libs as if they were DT_NEEDED.\" removed references\n    to the forward declaration.\n\n    Change-Id: I5f1aaa3a96f2af3edef07d4ea4e204b586424631\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Sun Jun 10 00:45:51 2018 +0800\n\n    linker: Make shim reference path absolute\n\n    This way, we can filter out non-existent binaries, and ensure we get\n    its absolute path before matching with get_realpath(). This for one\n    allows the use of symlinks in TARGET_LD_SHIM_LIBS.\n\n    Change-Id: I823815271b3257965534b6b87d8ea36ffb68bc08\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Fri Jun 15 03:59:05 2018 +0800\n\n    linker: Ensure active matching pairs\n\n    Change-Id: I54c666b4560dbfb40839b0bf9132a7fd8d3ed2dd\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Thu Jun 21 01:58:10 2018 +0800\n\n    linker: Don\u0027t involve shim in for_each_dt_needed\n\n    for_each_dt_needed may have other usages that shouldn\u0027t involve the\n    shim, for example, in the unloading of soinfos.\n\n    Change-Id: Id38de183d90c3f707767bdca032a5ea2bc82fde8\n\nChange-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16152\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/8d7fd6e39f8f0e827553c87d4eebb37894335822"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/8d7fd6e39f8f0e827553c87d4eebb37894335822"}]},"parents_data":[{"branch_name":"refs/heads/lineage-16.0","commit_id":"11750b2387b159d3af1b81d7f5e87ba4c3a599c8","is_merged_in_target_branch":false,"change_id":"I994ab1a600a0b237b496ceebe2dd54febc28a6bd","change_number":223064,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/lineage-16.0"},"a2cd38e1074e89768095a5f0131f129e9a408d22":{"kind":"TRIVIAL_REBASE","_number":6,"created":"2018-08-22 18:13:49.000000000","uploader":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/65/223065/6","fetch":{"anonymous http":{"url":"https://github.com/LineageOS/android_bionic","ref":"refs/changes/65/223065/6","commands":{"Branch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/6 \u0026\u0026 git checkout -b change-223065 FETCH_HEAD","Checkout":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/LineageOS/android_bionic refs/changes/65/223065/6","Reset To":"git fetch https://github.com/LineageOS/android_bionic refs/changes/65/223065/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"917e59c19fbeb9b85c21a1e4b7bebf5048ce8efc","subject":"linker: Make platform text relocations denial optional","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/917e59c19fbeb9b85c21a1e4b7bebf5048ce8efc"}]}],"author":{"name":"Christopher R. Palmer","email":"crpalmer@gmail.com","date":"2017-04-08 20:40:01.000000000","tz":120},"committer":{"name":"Adrian DC","email":"radian.dc@gmail.com","date":"2018-08-22 18:13:21.000000000","tz":120},"subject":"linker: Add support for dynamic SHIM libraries","message":"linker: Add support for dynamic SHIM libraries\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Tue Nov 3 16:44:44 2015 -0500\n\n    linker: Add support for dynamic \"shim\" libs\n\n    Add a new environment variable\n\n    LD_SHIM_LIBS\n\n    that is a colon (\":\") separated list of vertical bar (\"|\") separated pairs.\n    The pairs are the name for a soinfo reference (executable or shared library)\n    followed by the name of the shim library to load.  For example:\n\n    LD_SHIM_LIBS\u003drmt_storage|libshim_ioprio.so:/system/lib/libicuuv.so|libshim_icu53.so\n\n    will instruct the linker to load the dynamic library libshim_ioprio.so\n    whenver rmt_storage is executed [*] and will load libshim_icu53.so whenever\n    any executable or other shared library links against /system/lib/libicuuv.so.\n\n    There are no restrictions against circular references.  In this example,\n    libshim_icu53.so can link against libicuuv.so which provides a simple and\n    convenient means of adding compatibility symbols.\n\n    [*] Note that the absolute path is not available to the linker and therefore\n    using the name of executables does depend on the invocation and therefore\n    should only be used if absolutely necessary.  That is, running\n    /system/bin/rmt_storage would not load any shim libs in this example because\n    it does not match the name of the invocation of the command.\n\n    If you have trouble determining the sonames being loaded, you can also set\n    the environment variable LD_DEBUG\u003d1 which will cause additional information\n    to be logged to help trace the detection of the shim libs.\n\n    Change-Id: I0ef80fa466167f7bcb7dac90842bef1c3cf879b6\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Nov 15 14:26:32 2015 -0500\n\n    linker: Fix the fact that shim libs do not properly call constructors\n\n    Change-Id: I34333e13443a154e675b853fa41442351bc4243a\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Tue Dec 1 07:10:36 2015 -0500\n\n    linker: Don\u0027t try to walk the g_active_shim_libs when doing dlsym\n\n    This is a bug in the original shim_lib implementation which was\n    doing the shim lib resolution both when loading the libraries\n    and when doing the dynamic symbol resolution.\n\n    Change-Id: Ib2df0498cf551b3bbd37d7c351410b9908eb1795\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Nov 29 08:28:10 2015 -0500\n\n    linker: Reset the active shim libs each time we do a dlopen\n\n    We use the active libs to avoid recursively trying to load the\n    same library:\n\n    A -\u003e shimlibs add B -\u003e depends on A -\u003e shimlibs add B -\u003e ...\n\n    However, when we repeatedly dlopen the same library we need\n    to reset the active shim libs to avoid failing to add B the\n    second time we dlopen A.\n\n    Change-Id: I27580e3d6a53858e8bca025d6c85f981cffbea06\n\nAuthor: Danny Baumann \u003cdannybaumann@web.de\u003e\nDate:   Fri Dec 11 10:29:16 2015 +0100\n\n    Make shim lib load failure non-fatal.\n\n    Instead, print an appropriate warning message. Aborting symbol\n    resolution on shim lib load failure leads to weird symbol lookup\n    failures, because symbols in libraries referenced after the one loading\n    the shim won\u0027t be loaded anymore without a log message stating why that\n    happened.\n\n    Change-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16143\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sat Dec 12 06:10:09 2015 -0500\n\n    bionic: Do not allow LD_SHIM_LIBS for setuid executables\n\n    That\u0027s really not safe...\n\n    Change-Id: If79af951830966fc21812cd0f60a8998a752a941\n\nAuthor: Christopher R. Palmer \u003ccrpalmer@gmail.com\u003e\nDate:   Sun Feb 14 11:38:44 2016 -0500\n\n    bionic: linker: Load shim libs *before* the self-linked libs\n\n    By loading them earlier, this allows us to override a symbol in\n    a library that is being directly linked.\n\n    I believe this explains why some people have had problems shimming\n    one lib but when the changet he shim to be against a different\n    lib it magically works.\n\n    It also makes it possible to override some symbols that were\n    nearly impossible to override before this change.  For example, it is\n    pretty much impossible to override a symbol in libutils without\n    this change because it\u0027s loaded almost everywhere so no matter\n    where you try to place the shimming, it will be too late and\n    the other symbol will have priority.\n\n    In particularly, this is necessary to be able to correctly\n    shim the VectorImpl symbols for dlx.\n\n    Change-Id: I461ca416bc288e28035352da00fde5f34f8d9ffa\n\nAuthor: Chirayu Desai \u003cchirayudesai1@gmail.com\u003e\nDate:   Thu Aug 25 19:02:41 2016 +0530\n\n    linker: Update find_library call for shimlibs\n\n    commits 0cdef7e7f3c6837b56a969120d9098463d1df8d8\n    \"Respect caller DT_RUNPATH in dlopen().\"\n    and 42d5fcb9f494eb45de3b6bf759f4a18076e84728\n    \"Introducing linker namespaces\"\n    added new arguments to find_library, add them here.\n\n    Change-Id: I8f35a45b00d14f8b2ce01a0a96d2dc7759be04a6\n\nAuthor: Chippa-a \u003cvusal1372@gmail.com\u003e\nDate:   Sat Aug 27 14:56:30 2016 +0200\n\n    linker: Update LD_SHIM_LIBS parser function\n\n     * Upgrade the code using the same changes as\n        42d5fcb9f494eb45de3b6bf759f4a18076e84728\n        bda20e78f0f314dbbf0f0bbcf0740cf2d6a4b85e\n\n    Change-Id: Ic8be0871945bd9feccd0f94a6770f3cc78a70a0f\n\nAuthor: Danny Baumann \u003cdannybaumann@web.de\u003e\nDate:   Wed Sep 7 16:54:06 2016 +0200\n\n    Inject shim libs as if they were DT_NEEDED.\n\n    The previous separate approach had one flaw: If the shim lib requires\n    another lib that\u0027s already loaded, find_library_internal() would return\n    the previously loaded copy, but the later load action would fail as the\n    ELF reader map of the initial loading round was already discarded and\n    thus a new ElfReader instance for the soinfo instance was created, which\n    didn\u0027t know about the previous reading/loading state.\n\n    Change-Id: Ib224dbd35d114197097e3dee14a077cc9130fedb\n\nAuthor: jrior001 \u003cjriordan001@gmail.com\u003e\nDate:   Fri Oct 7 19:36:51 2016 -0400\n\n    linker: load shims prior to DT_NEEDED check\n\n    This allows shims to override existing symbols, not just\n    inject new symbols.\n\n    Change-Id: Ib9216bcc651d8d38999c593babb94d76dc1dbc95\n\nAuthor: Adrian DC \u003cradian.dc@gmail.com\u003e\nDate: Sat, 8 Apr 2017 22:40:01 +0200\n\n     * Adapt to latest AOSP Oreo bionic linker changes\n     * Additional header to avoid unused function\n\n    Change-Id: Ib9216bcc651d8d38999c593babb94d76dc1dbc95\n\nAuthor: Paul Keith \u003cjavelinanddart@gmail.com\u003e\nDate:   Thu Feb 15 21:57:33 2018 +0100\n\n    linker: Move shims to TARGET_LD_SHIM_LIBS\n\n    * To reduce security exposure, let\u0027s set this at compile time,\n      and block off all the code unless the board flag is set\n\n    Change-Id: Ieec5f5d9e0f39a798fd48eae037ecffe9502474c\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Fri Jun 8 09:48:17 2018 +0800\n\n    linker: Provide soinfo path of the shimmed binary\n\n    This is a forward port of part of the original change that was missed out\n    since the initial port of the shim logic to O.\n\n    Change-Id: I1f7ff98472cfef5cb2d2bcb303082784898cd0c6\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Tue Jun 5 13:36:43 2018 +0800\n\n    linker: Remove unused find_libraries declaration\n\n    commit \"Inject shim libs as if they were DT_NEEDED.\" removed references\n    to the forward declaration.\n\n    Change-Id: I5f1aaa3a96f2af3edef07d4ea4e204b586424631\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Sun Jun 10 00:45:51 2018 +0800\n\n    linker: Make shim reference path absolute\n\n    This way, we can filter out non-existent binaries, and ensure we get\n    its absolute path before matching with get_realpath(). This for one\n    allows the use of symlinks in TARGET_LD_SHIM_LIBS.\n\n    Change-Id: I823815271b3257965534b6b87d8ea36ffb68bc08\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Fri Jun 15 03:59:05 2018 +0800\n\n    linker: Ensure active matching pairs\n\n    Change-Id: I54c666b4560dbfb40839b0bf9132a7fd8d3ed2dd\n\nAuthor: Nich \u003cnctrenco@gmail.com\u003e\nDate:   Thu Jun 21 01:58:10 2018 +0800\n\n    linker: Don\u0027t involve shim in for_each_dt_needed\n\n    for_each_dt_needed may have other usages that shouldn\u0027t involve the\n    shim, for example, in the unloading of soinfos.\n\n    Change-Id: Id38de183d90c3f707767bdca032a5ea2bc82fde8\n\nChange-Id: Ic3ad7095ddae7ea1039cb6a18603d5cde8a16152\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/a2cd38e1074e89768095a5f0131f129e9a408d22"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_bionic/commit/a2cd38e1074e89768095a5f0131f129e9a408d22"}]},"parents_data":[{"branch_name":"refs/heads/lineage-16.0","commit_id":"917e59c19fbeb9b85c21a1e4b7bebf5048ce8efc","is_merged_in_target_branch":true,"change_id":"I994ab1a600a0b237b496ceebe2dd54febc28a6bd","change_number":223064,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/lineage-16.0"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":13589,"name":"Adrian DC","email":"radian.dc@gmail.com","username":"AdrianDC","avatars":[{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/a15a5e810bade29504d4996189c65da3.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":3962,"name":"Rashed Abdel-Tawab","email":"rashedabdeltawab@gmail.com","username":"Rashed","avatars":[{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/6e28c56bf2b55e191b60a61ca5852f1f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}}]}
