Comments (8)
Comment #1 originally posted by [email protected] on 2011-07-06T14:03:40.000Z:
This stuff is required because the Solaris libCrun/libCstd is incompatible with the g++ runtime. So, if we're linking leveldb into an app with other libraries built against Solaris C++ runtimes, we're out-of-luck.
Here's a patch that fixes it. Passes all tests on Solaris and still works on Linux in my tests.
Enjoy. Please consider applying this, because we have to maintain this nasty diff to build.
from leveldb.
Comment #2 originally posted by [email protected] on 2011-07-14T23:42:50.000Z:
Before we patch in your change, could you fill out Google's Contributor Agreement? You can do this online:
http://code.google.com/legal/individual-cla-v1.0.html
Let me know when you have done so.
A few question:
Do all tests still pass after this change?
Why do you remove the "," at the end of enums? Is that something Sun Studio does not like?
Why does util/comparator require #include ?
In table.h, is there no library function to reverse a string? The rev.append() way of doing things seems expensive/hacky.
Thanks for your help!
Gabor Cselle
Product Managr, Google
from leveldb.
Comment #3 originally posted by [email protected] on 2011-07-15T00:27:49.000Z:
Do all tests still pass after this change?
Yes they do.
Why do you remove the "," at the end of enums? Is that something Sun Studio does not like?
Sun Studio does not like them. I believe it isn't actually valid C++, but most C++ compilers are tolerant of the (rather convenient) offense.
Why does util/comparator require #include ?
std::min and std::max are in under Sun Studio's C++ SDK.
In table.h, is there no library function to reverse a string? The rev.append() way of doing things seems expensive/hacky.
I could find none. As it was it didn't compile. That change is in table_test.cc (not table.h). So, the performance penalty doesn't enter the library in any way with this change.
from leveldb.
Comment #4 originally posted by [email protected] on 2011-07-15T00:28:37.000Z:
Signed ICLA as [email protected].
from leveldb.
Comment #5 originally posted by [email protected] on 2011-07-19T23:38:35.000Z:
This is now fixed in r38. Thanks for your help! If you have a chance, can you please verify the fix?
from leveldb.
Comment #6 originally posted by postwait on 2011-07-20T04:33:44.000Z:
almost perfect. Sun Studio doesn't define "asm" and "volatile", but instead just the normal keywords "asm" and "volatile". In your merge you consolidated the g++ and SUNPRO_CC stuff into one block using the volatile and asm keywords which cases a compile error.
My question is: doesn't g++ support the plain-old "asm" and "volatile" keywords so that we could consolidate to the same non-underscore version for both compiler suites?
By changing volatile to volatile and asm to asm on line 57 of port/atomic_pointer.h, all compiles, links and passes a make check using Sun Studio 12.1.
from leveldb.
Comment #7 originally posted by [email protected] on 2011-07-21T02:42:49.000Z:
This should now be fixed in Revision 39:.
Can you check again?
Thanks for your help! Gabor
from leveldb.
Comment #8 originally posted by [email protected] on 2011-07-21T03:18:52.000Z:
Victory. All is well on the Sun Studio front.
from leveldb.
Related Issues (20)
- Database size excessive variation HOT 1
- question about bloom.cc
- Why leveldb made flush() in table_builder.h public?
- 45ebb5e012f76928db62e78f71ee82368b2fd230
- Why do we have to pass a pointer to a `std::string` to `Get()` ? HOT 2
- Nr
- A small question of Corruption_Test
- LevelDB get stuck in leveldb::DBImpl::MakeRoomForWrite() for 1.13
- Shared from Bing: https://mathsolver.microsoft.com/en/quiz/fmr8yx5s?ref=s
- zlib compression support
- readrandom performance
- Question - Iterator with an UNIQUE result
- Memory consumption problem
- Consider Profile-Guided Optimiazation tuning
- In the member function ParseNextKey() of the Block::Ite class in the leveldb/table/block.cc file, the last member variable restart_index_ updated. HOT 1
- Corruption: corrupted compressed block contents HOT 1
- Write Amplification factor for small key-values with frequent writes to levelDB
- leveldb created from large batch writes temporarily grows too much from 'compacting': lesson - compact before moving to system with low storage HOT 2
- check_library_exists cannot find snappy package correctly HOT 1
- Question: Each KV pair has 2 copies in arena?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from leveldb.