Use hidden for -fvisibility instead of internal