{"action":"opened","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/6866","repository_url":"https://api.github.com/repos/grpc/grpc","labels_url":"https://api.github.com/repos/grpc/grpc/issues/6866/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/6866/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/6866/events","html_url":"https://github.com/grpc/grpc/issues/6866","id":159654831,"number":6866,"title":"ServerBuilderOptions::UpdatePlugins API is not compatible with gcc-4.4","user":{"login":"vjpai","id":8864912,"avatar_url":"https://avatars.githubusercontent.com/u/8864912?v=3","gravatar_id":"","url":"https://api.github.com/users/vjpai","html_url":"https://github.com/vjpai","followers_url":"https://api.github.com/users/vjpai/followers","following_url":"https://api.github.com/users/vjpai/following{/other_user}","gists_url":"https://api.github.com/users/vjpai/gists{/gist_id}","starred_url":"https://api.github.com/users/vjpai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vjpai/subscriptions","organizations_url":"https://api.github.com/users/vjpai/orgs","repos_url":"https://api.github.com/users/vjpai/repos","events_url":"https://api.github.com/users/vjpai/events{/privacy}","received_events_url":"https://api.github.com/users/vjpai/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/grpc/grpc/labels/api%20feedback","name":"api feedback","color":"5319e7"},{"url":"https://api.github.com/repos/grpc/grpc/labels/c++","name":"c++","color":"eb6420"},{"url":"https://api.github.com/repos/grpc/grpc/labels/RELEASE%20BLOCKER","name":"RELEASE BLOCKER","color":"e11d21"}],"state":"open","locked":false,"assignee":{"login":"vjpai","id":8864912,"avatar_url":"https://avatars.githubusercontent.com/u/8864912?v=3","gravatar_id":"","url":"https://api.github.com/users/vjpai","html_url":"https://github.com/vjpai","followers_url":"https://api.github.com/users/vjpai/followers","following_url":"https://api.github.com/users/vjpai/following{/other_user}","gists_url":"https://api.github.com/users/vjpai/gists{/gist_id}","starred_url":"https://api.github.com/users/vjpai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vjpai/subscriptions","organizations_url":"https://api.github.com/users/vjpai/orgs","repos_url":"https://api.github.com/users/vjpai/repos","events_url":"https://api.github.com/users/vjpai/events{/privacy}","received_events_url":"https://api.github.com/users/vjpai/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2016-06-10T15:00:26Z","updated_at":"2016-06-10T15:00:26Z","closed_at":null,"body":"gcc-4.4 is one of gRPC's supported targets , but we have not been doing regular portability testing for it. However, because of [a bug in older versions of gcc] (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44872) , gcc versions below 4.6 do not support the use of map with unique_ptr as its value type. There are also several other associative containers that are not supported in this way. I have attempted to clarify these issues in the C++ style guide in #6865 . There is no workaround to this problem.\r\n\r\nThere are a few possible solutions:\r\n\r\n- Remove the existing API and replace it with something based on std::vector or some other non-associative type. **My preference since this is a relatively new API and most likely will not break existing users.**\r\n- Remove the existing API and replace it with using dumb pointers rather than unique_ptr. Then just delete the pointers in the destructor. This is still API breaking, though, because it requires the user of the UpdatePlugins API to delete any pointers that are changed.\r\n- Keep the existing API but wrap it in an appropriate `#ifdef` . Add a new API for users of older compilers.  This is potentially ugly for requiring us to permanently maintain both versions. \r\n\r\n@y-zeng @yang-g \r\n"}}
{"actor":{"display_login":"vjpai"}}