Removed GNU strdup extension from JSON
Came up during some of the meson work @lithomas1 is doing. Looks like we allow non-portable GNU extensions in JSON, but these aren't upstream in ultrajson. Couldn't find a history of why we have this.

See also https://stackoverflow.com/questions/5582211/what-does-define-gnu-source-imply/5583764#5583764 We are pretty far diverged. Unfortunately when we vendored stuff in the past we would edit in place rather than bolt on to it, so it's hard to sync up with more recent versions OK looks like this goes back to https://github.com/pandas-dev/pandas/issues/4918 though I think the strdup calls are unnecessary. Let's see... Interestingly enough this becomes part of the standard in C2X FYI, the docs build seems to be segfaulting from a quick glance, since it looks like the same thing that happened to me. If you run it with a single worker, you'll be able to see the exit code, I think (245 is segfault). You can also run it with catchsegv, which'll print out more details if it's actually a segfault. Super strange. Cool thanks for the heads up - didn't know about that feature Looks like I was freeing the wrong variable. Surprised it didn't segfault on other parts of CI - its possible the locale test isn't really even running but will leave that to another effort

cpplint also complains about strcpy but is fine with memcpy...I think the former would be more clear in this case. Worth reconsidering if we want to continue using cpplint given its not well maintained by Google Nice cleanup @WillAyd 