Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HOLD] C++11 compability #1558

Closed
wants to merge 3 commits into from
Closed

Conversation

cmouse
Copy link
Contributor

@cmouse cmouse commented Jul 17, 2014

Fixes C++11 incompabilities and turns on it whenever possible.

@cmouse
Copy link
Contributor Author

cmouse commented Jul 17, 2014

Not before 3.4.0

@cmouse
Copy link
Contributor Author

cmouse commented Jul 17, 2014

Seems that clang has stricter set of rules and boost is not compatible?

  from 'const boost::shared_ptr<DNSCryptoKeyEngine>' to 'this_type' (aka
  'shared_ptr<DNSCryptoKeyEngine>') uses deleted function 
     this_type(r).swap(*this);

@zeha
Copy link
Collaborator

zeha commented Jul 17, 2014

The revision is useful, because people tend to run random snapshots and they never can remember where it came from or what version it was. DATE and TIME could probably be removed.

@cmouse
Copy link
Contributor Author

cmouse commented Jul 17, 2014

Well, we need to figure out how to fix the clang compile first. I'm not in favour of removing those here.

@nlmark
Copy link
Contributor

nlmark commented Jul 17, 2014

DATE and TIME can be useful to easily see if someone has a snapshot that should contain X Y or Z or something from before it was merged/created. Having them can give an indication.

@zeha
Copy link
Collaborator

zeha commented Jul 17, 2014

If you go c++11, may as well switch to std::shared_ptr.

@cmouse
Copy link
Contributor Author

cmouse commented Jul 17, 2014

the c++11 support is still optional, so we would have to check for HAVE_CXX11 define and use it if present. Would fix this though, you're right .

@rubenk
Copy link
Contributor

rubenk commented Jul 17, 2014

pdns already logs VERSION, DATE and TIME at startup, surely we don't need to do that for every backend? I'll do a separate PR to clean that up.

@mind04
Copy link
Contributor

mind04 commented Jul 17, 2014

On most systems backends are complied as modules. If you remove this how can you tell if the backend module version is identical to the installed pdns_server version?

@rubenk
Copy link
Contributor

rubenk commented Jul 17, 2014

@mind04 Surely pdns doesn't support modules built against a different version than the one you're running, and you always install everything from the same build? Anyway, half of the modules already don't report the version, and a few others don't report date and time, so it's not a very reliable mechanism as it stands now. If you insist I can leave the version in if you use it, and add it to the modules that lack it. I think date and time should really go, since this changes your binaries every time you rebuild. I'll post a separate PR, let's continue there.

@zeha
Copy link
Collaborator

zeha commented Jul 17, 2014

AFAIK it will load them and then possibly crash.

@cmouse
Copy link
Contributor Author

cmouse commented Jul 17, 2014

it depends alot on how incompatible they are. in many circumstances you can use the modules even if they are compiled against different version, provided they are not too different.

@Habbie
Copy link
Member

Habbie commented Feb 19, 2015

@ahupowerdns want to pick this up?

@Habbie
Copy link
Member

Habbie commented May 6, 2015

Currently unmergeable; probably some duplication with @ahupowerdns' big merge. Want to fix this up?

@cmouse
Copy link
Contributor Author

cmouse commented May 6, 2015

I don't think this is really needed anymore.

@cmouse cmouse closed this May 6, 2015
@cmouse cmouse deleted the cxx11-compability branch August 1, 2015 03:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants