need _GNU_SOURCE for strdup