{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/rocksdb/issues/563","labels_url":"https://api.github.com/repos/facebook/rocksdb/issues/563/labels{/name}","comments_url":"https://api.github.com/repos/facebook/rocksdb/issues/563/comments","events_url":"https://api.github.com/repos/facebook/rocksdb/issues/563/events","html_url":"https://github.com/facebook/rocksdb/issues/563","id":65794589,"number":563,"title":"Rocksdb SONAME","user":{"login":"msb-at-yahoo","id":7442825,"avatar_url":"https://avatars.githubusercontent.com/u/7442825?v=3","gravatar_id":"","url":"https://api.github.com/users/msb-at-yahoo","html_url":"https://github.com/msb-at-yahoo","followers_url":"https://api.github.com/users/msb-at-yahoo/followers","following_url":"https://api.github.com/users/msb-at-yahoo/following{/other_user}","gists_url":"https://api.github.com/users/msb-at-yahoo/gists{/gist_id}","starred_url":"https://api.github.com/users/msb-at-yahoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/msb-at-yahoo/subscriptions","organizations_url":"https://api.github.com/users/msb-at-yahoo/orgs","repos_url":"https://api.github.com/users/msb-at-yahoo/repos","events_url":"https://api.github.com/users/msb-at-yahoo/events{/privacy}","received_events_url":"https://api.github.com/users/msb-at-yahoo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-01T22:45:42Z","updated_at":"2015-04-03T15:30:30Z","closed_at":null,"body":"What's the intended policy for handling the SONAME when building rocksdb with PLATFORM_SHARED_VERSIONED:=true?  Normally, the SONAME for a shared library will be bumped for a change that breaks the ABI.\r\n\r\nThe case that motivates the question is a change in 3.10, where Env::Schedule() has a new parameter, but the SONAME remains librocksdb.so.3.  Every minor release is likely to be binary incompatible with the previous one, so librocksdb.so.$(MAJOR).$(MINOR) might be a better choice along with reviewing patch releases to ensure they're binary compatible.\r\n\r\n[note to those who may doubt the utility of C++11's override:  I caught the problem while building my application, not at load time]"},"comment":{"url":"https://api.github.com/repos/facebook/rocksdb/issues/comments/89324353","html_url":"https://github.com/facebook/rocksdb/issues/563#issuecomment-89324353","issue_url":"https://api.github.com/repos/facebook/rocksdb/issues/563","id":89324353,"user":{"login":"igorcanadi","id":1091023,"avatar_url":"https://avatars.githubusercontent.com/u/1091023?v=3","gravatar_id":"","url":"https://api.github.com/users/igorcanadi","html_url":"https://github.com/igorcanadi","followers_url":"https://api.github.com/users/igorcanadi/followers","following_url":"https://api.github.com/users/igorcanadi/following{/other_user}","gists_url":"https://api.github.com/users/igorcanadi/gists{/gist_id}","starred_url":"https://api.github.com/users/igorcanadi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/igorcanadi/subscriptions","organizations_url":"https://api.github.com/users/igorcanadi/orgs","repos_url":"https://api.github.com/users/igorcanadi/repos","events_url":"https://api.github.com/users/igorcanadi/events{/privacy}","received_events_url":"https://api.github.com/users/igorcanadi/received_events","type":"User","site_admin":false},"created_at":"2015-04-03T15:30:30Z","updated_at":"2015-04-03T15:30:30Z","body":"Internally we use RocksDB through a static library, so we didn't think much about this issue. There is code (still from LevelDB) to produce versioned shared library: https://github.com/facebook/rocksdb/blob/master/Makefile#L294\r\n\r\nDoes `PLATFORM_SHARED_VERSIONED:=true` option doesn't work?\r\n\r\nShould we make this default? @meyering is currently making our build process much better, so maybe he can also chime in here."}}