I've never used ld directly. I always use gcc as the compiler to also link programs.
Also, I've never done ASM on x86 that wasn't inline to a C program.
Code:
$ gcc -o wins6 wins6.o -lX11
would be the expected linker. The location of the libX11.so file would be in a default directory, so gcc would find it. If not, specify the full path to the file.
If that created the wins6 file, but it doesn't run, I'd use the file command to see what type of header the program has.