add gnu function