Assume the following simple `C` code:

`file1.c`

```
#include <stdio.h>

char* gets(char* i){
  return i;
}

```

which is redefining the libC native function `gets`.

This compiles fine with `gcc file1.c`.

My question is howcome the linker isn't complaining about `duplicate symbols` as this function is also defined in libC itself?