I have not tried to build tcl/tk with out setting LD equal to ld.
I have never set LD=gcc.  As far as I know gcc calls ld to do any kind
of linking.  I do not have the GNU ld installed on my system.  I only
have IBM ld installed on my system.

The problem that I experience was that either configure/gmake was
causing an incorrect -L and -l specification to be generated.
From the information I got by reading the man pages for ld
-L is used to specify a directory where libraries and .so files
can be found.  The -l specifies a name of a particular library.

During the gmake run a -l specification is being used to define
a .so file and not a library.  Thus when ld tried to find the
library it is unable to do so and is thus unable to complete the
link operation.

All I did was to change the command to put the correct library
name in the -l specification and to add the correct .so file to the
command.
That is; I changed -ltcl8.6 to -ltclstub8.6
and libtclstub8.6.a to libtcl8.6.so.
(If tclstub8.6 should really be tcl8.6 then there are other
problem in the configure/gmake output.)

The correction to the tk gmake run is the same except that
the tk gmake also requires that the correct tcl changes also
be added to the command.

Bye,
Dwight