**Preamble**: this question is *not* about Oracle, instead I'd like to understand the fundamental difference between gcc-4 and gcc-6 in the handling of Position Independent Code.

So I have decided to try an Oracle 12c installation on a Debian *stretch*.

During the link stage with gcc-6, error messages like the following are issued:

```
/usr/bin/ld: /opt/oracle/product/12.2.0/lib/libpls12.a(pci.o):
  relocation R_X86_64_32S against `.rodata.str1.4' can not be used when making a shared object;
  recompile with -fPIC.

```

However, if I switch the compiler to use gcc-4.9, all the linking is done without any problems.

Thus my 2 questions:

* Is there a change in the defaults for -fPIC and -fPIE between gcc version 4 and 6? Most probably yes, version 6 seems to use the 2 options by default.
* More important for me: does gcc, version 6 have an option to use the version 4 behavior for the generation of position independent code? (Or will I sooner or later no more be able to link against *old* libraries because gcc-4 is no more available?)