Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/go: -buildmode=c-shared not working in Go1.10 #23589

Closed
muhammadmuzzammil1998 opened this issue Jan 28, 2018 · 24 comments
Closed

cmd/go: -buildmode=c-shared not working in Go1.10 #23589

muhammadmuzzammil1998 opened this issue Jan 28, 2018 · 24 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-Windows
Milestone

Comments

@muhammadmuzzammil1998
Copy link

Object file format not recognized by gcc

I ran this command:

go1.10rc1.exe build -buildmode=c-shared

Output:

C:\Users\Muzzammil\sdk\go1.10rc1\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
C:\Users\MUZZAM~1\AppData\Local\Temp\go-link-379335559\go.o: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status

My Go Version: go version go1.10rc1 windows/amd64

More info:

  • I am building this program.
  • My Go1.10rc1 is not added to path, I am using full location, i.e., C:\Users\Muzzammil\go\src\golang.org\x\build\version\go1.10rc1\go1.10rc1.exe so full command is:
C:\Users\Muzzammil\go\src\golang.org\x\build\version\go1.10rc1\go1.10rc1.exe build -buildmode=c-shared

Thanks.

@ianlancetaylor
Copy link
Contributor

Please show us the output of build -x -buildmode=c-shared.

@ianlancetaylor ianlancetaylor added this to the Go1.10 milestone Jan 28, 2018
@ianlancetaylor ianlancetaylor added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Jan 28, 2018
@muhammadmuzzammil1998
Copy link
Author

@ianlancetaylor
Here's the output of this command:

go1.10rc1.exe build -x -buildmode=c-shared

Output:

WORK=C:\Users\MUZZAM~1\AppData\Local\Temp\go-build185241758
mkdir -p $WORK\b001\
cat >$WORK\b001\importcfg.link << 'EOF' # internal
packagefile golang.org/x/build/version/go1.10rc1/swsh-keygen=C:\Users\Muzzammil\AppData\Local\go-build\ab\ab106d40aa55eb32a9e37a0e51b2aa101f88dd8ac6cfaf271ab4f35c4c2a02d7-d
packagefile crypto/rand=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rand.a
packagefile crypto/rsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rsa.a
packagefile crypto/x509=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\x509.a
packagefile encoding/pem=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\pem.a
packagefile flag=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\flag.a
packagefile golang.org/x/crypto/ssh=C:\Users\Muzzammil\AppData\Local\go-build\2e\2e887c7f928881231bec30d2f4a761b081e61466913de4d753f802aad8d7a2ba-d
packagefile io/ioutil=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\io\ioutil.a
packagefile os=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\os.a
packagefile runtime=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime.a
packagefile runtime/cgo=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\cgo.a
packagefile errors=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\errors.a
packagefile io=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\io.a
packagefile math/big=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\big.a
packagefile sync=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sync.a
packagefile syscall=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\syscall.a
packagefile bytes=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\bytes.a
packagefile crypto=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto.a
packagefile crypto/subtle=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\subtle.a
packagefile hash=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\hash.a
packagefile math=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math.a
packagefile crypto/aes=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\aes.a
packagefile crypto/cipher=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\cipher.a
packagefile crypto/des=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\des.a
packagefile crypto/dsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\dsa.a
packagefile crypto/ecdsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\ecdsa.a
packagefile crypto/elliptic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\elliptic.a
packagefile crypto/md5=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\md5.a
packagefile crypto/sha1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha1.a
packagefile crypto/sha256=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha256.a
packagefile crypto/sha512=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha512.a
packagefile crypto/x509/pkix=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\x509\pkix.a
packagefile encoding/asn1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\asn1.a
packagefile encoding/hex=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\hex.a
packagefile fmt=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\fmt.a
packagefile vendor/golang_org/x/crypto/cryptobyte=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\vendor\golang_org\x\crypto\cryptobyte.a
packagefile vendor/golang_org/x/crypto/cryptobyte/asn1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\vendor\golang_org\x\crypto\cryptobyte\asn1.a
packagefile net=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\net.a
packagefile net/url=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\net\url.a
packagefile reflect=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\reflect.a
packagefile strconv=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\strconv.a
packagefile strings=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\strings.a
packagefile time=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\time.a
packagefile unicode/utf8=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode\utf8.a
packagefile encoding/base64=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\base64.a
packagefile sort=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sort.a
packagefile bufio=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\bufio.a
packagefile crypto/hmac=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\hmac.a
packagefile crypto/rc4=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rc4.a
packagefile encoding/binary=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\binary.a
packagefile golang.org/x/crypto/curve25519=C:\Users\Muzzammil\AppData\Local\go-build\bb\bb843dc8dbbfe30a901cda21aa3bbd979bbf1c75fa4e2bbf6aae29fe17e01cf8-d
packagefile golang.org/x/crypto/ed25519=C:\Users\Muzzammil\AppData\Local\go-build\ea\ea60b92ec23b392c9b81a0ef0da92288ba18f084a3eddf82438323425c4b66a5-d
packagefile log=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\log.a
packagefile math/rand=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\rand.a
packagefile sync/atomic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sync\atomic.a
packagefile path/filepath=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\path\filepath.a
packagefile internal/poll=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\poll.a
packagefile internal/syscall/windows=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows.a
packagefile internal/testlog=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\testlog.a
packagefile unicode/utf16=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode\utf16.a
packagefile runtime/internal/atomic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\internal\atomic.a
packagefile runtime/internal/sys=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\internal\sys.a
packagefile math/bits=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\bits.a
packagefile internal/race=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\race.a
packagefile internal/syscall/windows/sysdll=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows\sysdll.a
packagefile internal/cpu=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\cpu.a
packagefile unicode=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode.a
packagefile crypto/internal/cipherhw=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\internal\cipherhw.a
packagefile context=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\context.a
packagefile internal/nettrace=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\nettrace.a
packagefile internal/singleflight=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\singleflight.a
packagefile internal/syscall/windows/registry=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows\registry.a
packagefile golang.org/x/crypto/ed25519/internal/edwards25519=C:\Users\Muzzammil\AppData\Local\go-build\1b\1b5986c147dc442a7997e479666d1ff7005f8ea3c58e907166e57865501c602d-d
EOF
mkdir -p $WORK\b001\exe\
cd $WORK\b001\exe\
"C:\\Users\\Muzzammil\\sdk\\go1.10rc1\\pkg\\tool\\windows_amd64\\link.exe" -o swsh-keygen -importcfg "C:\\Users\\MUZZAM~1\\AppData\\Local\\Temp\\go-build185241758\\b001\\importcfg.link" -buildmode=c-shared -buildid=XQh-aQn8urchlUc_WC4g/x
N1cq1emaXzTZ8G5j_3j/8Fn9PNfFL1nZWibhj-Ch/XQh-aQn8urchlUc_WC4g -extld=gcc "C:\\Users\\Muzzammil\\AppData\\Local\\go-build\\ab\\ab106d40aa55eb32a9e37a0e51b2aa101f88dd8ac6cfaf271ab4f35c4c2a02d7-d"
# golang.org/x/build/version/go1.10rc1/swsh-keygen
C:\Users\Muzzammil\sdk\go1.10rc1\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
C:\Users\MUZZAM~1\AppData\Local\Temp\go-link-136586515\go.o: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status

@ianlancetaylor
Copy link
Contributor

Thanks. What does gcc -v print?

@mattn
Copy link
Member

mattn commented Jan 29, 2018

not reproduced on Windows7 64bit with c469521.

gcc (Rev3, Built by MSYS2 project) 7.2.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

@muhammadmuzzammil1998
Copy link
Author

@ianlancetaylor

Output of gcc -v

Using built-in specs.
COLLECT_GCC=C:\MinGW\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/6.3.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-6.3.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --with-gmp=/mingw --with-mpfr --with-mpc=/mingw --with-isl=/mingw --prefix=/mingw --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-pkgversion='MinGW.org GCC-6.3.0-1' --enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs--with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --enable-libgomp --disable-libvtv --enable-nls
Thread model: win32
gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)

@muhammadmuzzammil1998
Copy link
Author

muhammadmuzzammil1998 commented Jan 29, 2018

@mattn
I saw your comment on #11058
image

is -buildmode=dll a thing?

@mattn
Copy link
Member

mattn commented Jan 29, 2018

is -buildmode=dll a thing?

No. please try -build-mode=c-shared -buildmode=c-shared.

@muhammadmuzzammil1998
Copy link
Author

@mattn
-build-mode=c-shared flag is not defined.
Command:

C:\Users\Muzzammil\go\src\golang.org\x\build\version\go1.10rc1\go1.10rc1.exe build -x -build-mode=c-shared

Output:

flag provided but not defined: -build-mode
usage: build [-o output] [-i] [build flags] [packages]
Run 'go help build' for details.

Also, can you try building DLL of the program?

@mattn
Copy link
Member

mattn commented Jan 29, 2018

Sorry s/-build-mode/-buildmode/

https://tip.golang.org/doc/go1.10#compiler

@muhammadmuzzammil1998
Copy link
Author

@mattn
I am sorry, whats s/-build-mode/-buildmode/? Do I add it to the command?

@mattn
Copy link
Member

mattn commented Jan 29, 2018

C:\Users\Muzzammil\go\src\golang.org\x\build\version\go1.10rc1\go1.10rc1.exe build -x -buildmode=c-shared

@muhammadmuzzammil1998
Copy link
Author

@mattn
I did that...
image

But just to be sure, here is the dump:

WORK=C:\Users\MUZZAM~1\AppData\Local\Temp\go-build890636874
mkdir -p $WORK\b001\
cat >$WORK\b001\importcfg.link << 'EOF' # internal
packagefile golang.org/x/build/version/go1.10rc1/swsh-keygen=C:\Users\Muzzammil\AppData\Local\go-build\ab\ab106d40aa55eb32a9e37a0e51b2aa101f88dd8ac6cfaf271ab4f35c4c2a02d7-d
packagefile crypto/rand=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rand.a
packagefile crypto/rsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rsa.a
packagefile crypto/x509=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\x509.a
packagefile encoding/pem=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\pem.a
packagefile flag=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\flag.a
packagefile golang.org/x/crypto/ssh=C:\Users\Muzzammil\AppData\Local\go-build\2e\2e887c7f928881231bec30d2f4a761b081e61466913de4d753f802aad8d7a2ba-d
packagefile io/ioutil=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\io\ioutil.a
packagefile os=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\os.a
packagefile runtime=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime.a
packagefile runtime/cgo=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\cgo.a
packagefile errors=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\errors.a
packagefile io=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\io.a
packagefile math/big=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\big.a
packagefile sync=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sync.a
packagefile syscall=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\syscall.a
packagefile bytes=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\bytes.a
packagefile crypto=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto.a
packagefile crypto/subtle=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\subtle.a
packagefile hash=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\hash.a
packagefile math=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math.a
packagefile crypto/aes=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\aes.a
packagefile crypto/cipher=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\cipher.a
packagefile crypto/des=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\des.a
packagefile crypto/dsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\dsa.a
packagefile crypto/ecdsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\ecdsa.a
packagefile crypto/elliptic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\elliptic.a
packagefile crypto/md5=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\md5.a
packagefile crypto/sha1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha1.a
packagefile crypto/sha256=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha256.a
packagefile crypto/sha512=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha512.a
packagefile crypto/x509/pkix=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\x509\pkix.a
packagefile encoding/asn1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\asn1.a
packagefile encoding/hex=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\hex.a
packagefile fmt=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\fmt.a
packagefile vendor/golang_org/x/crypto/cryptobyte=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\vendor\golang_org\x\crypto\cryptobyte.a
packagefile vendor/golang_org/x/crypto/cryptobyte/asn1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\vendor\golang_org\x\crypto\cryptobyte\asn1.a
packagefile net=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\net.a
packagefile net/url=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\net\url.a
packagefile reflect=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\reflect.a
packagefile strconv=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\strconv.a
packagefile strings=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\strings.a
packagefile time=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\time.a
packagefile unicode/utf8=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode\utf8.a
packagefile encoding/base64=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\base64.a
packagefile sort=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sort.a
packagefile bufio=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\bufio.a
packagefile crypto/hmac=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\hmac.a
packagefile crypto/rc4=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rc4.a
packagefile encoding/binary=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\binary.a
packagefile golang.org/x/crypto/curve25519=C:\Users\Muzzammil\AppData\Local\go-build\bb\bb843dc8dbbfe30a901cda21aa3bbd979bbf1c75fa4e2bbf6aae29fe17e01cf8-d
packagefile golang.org/x/crypto/ed25519=C:\Users\Muzzammil\AppData\Local\go-build\ea\ea60b92ec23b392c9b81a0ef0da92288ba18f084a3eddf82438323425c4b66a5-d
packagefile log=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\log.a
packagefile math/rand=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\rand.a
packagefile sync/atomic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sync\atomic.a
packagefile path/filepath=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\path\filepath.a
packagefile internal/poll=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\poll.a
packagefile internal/syscall/windows=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows.a
packagefile internal/testlog=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\testlog.a
packagefile unicode/utf16=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode\utf16.a
packagefile runtime/internal/atomic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\internal\atomic.a
packagefile runtime/internal/sys=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\internal\sys.a
packagefile math/bits=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\bits.a
packagefile internal/race=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\race.a
packagefile internal/syscall/windows/sysdll=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows\sysdll.a
packagefile internal/cpu=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\cpu.a
packagefile unicode=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode.a
packagefile crypto/internal/cipherhw=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\internal\cipherhw.a
packagefile context=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\context.a
packagefile internal/nettrace=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\nettrace.a
packagefile internal/singleflight=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\singleflight.a
packagefile internal/syscall/windows/registry=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows\registry.a
packagefile golang.org/x/crypto/ed25519/internal/edwards25519=C:\Users\Muzzammil\AppData\Local\go-build\1b\1b5986c147dc442a7997e479666d1ff7005f8ea3c58e907166e57865501c602d-d
EOF
mkdir -p $WORK\b001\exe\
cd $WORK\b001\exe\
"C:\\Users\\Muzzammil\\sdk\\go1.10rc1\\pkg\\tool\\windows_amd64\\link.exe" -o swsh-keygen -importcfg "C:\\Users\\MUZZAM~1\\AppData\\Local\\Temp\\go-build890636874\\b001\\importcfg.link" -buildmode=c-shared -buildid=XQh-aQn8urchlUc_WC4g/x
N1cq1emaXzTZ8G5j_3j/8Fn9PNfFL1nZWibhj-Ch/XQh-aQn8urchlUc_WC4g -extld=gcc "C:\\Users\\Muzzammil\\AppData\\Local\\go-build\\ab\\ab106d40aa55eb32a9e37a0e51b2aa101f88dd8ac6cfaf271ab4f35c4c2a02d7-d"
# golang.org/x/build/version/go1.10rc1/swsh-keygen
C:\Users\Muzzammil\sdk\go1.10rc1\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
C:\Users\MUZZAM~1\AppData\Local\Temp\go-link-274971679\go.o: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status

@mattn
Copy link
Member

mattn commented Jan 29, 2018

Why do you use 32bit C compiler on 64bit OS?

@muhammadmuzzammil1998
Copy link
Author

muhammadmuzzammil1998 commented Jan 29, 2018

What? Didnt know... Installing 64bit now... sorry

@muhammadmuzzammil1998
Copy link
Author

muhammadmuzzammil1998 commented Jan 29, 2018

@mattn
Is this version correct?

Output of gcc -v

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/Program\ Files\ (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/../libexec/gcc/i686-w64-mingw32/7.2.0/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-7.2.0/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/c/mingw720/i686-720-posix-dwarf-rt_v5-rev1/mingw32 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-sjlj-exceptions --with-dwarf2 --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib --with-gmp=/c/mingw720/prerequisites/i686-w64-mingw32-static --with-mpfr=/c/mingw720/prerequisites/i686-w64-mingw32-static --with-mpc=/c/mingw720/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw720/prerequisites/i686-w64-mingw32-static --with-pkgversion='i686-posix-dwarf-rev1, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw720/i686-720-posix-dwarf-rt_v5-rev1/mingw32/opt/include -I/c/mingw720/prerequisites/i686-zlib-static/include -I/c/mingw720/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw720/i686-720-posix-dwarf-rt_v5-rev1/mingw32/opt/include -I/c/mingw720/prerequisites/i686-zlib-static/include -I/c/mingw720/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw720/i686-720-posix-dwarf-rt_v5-rev1/mingw32/opt/include -I/c/mingw720/prerequisites/i686-zlib-static/include -I/c/mingw720/prerequisites/i686-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw720/i686-720-posix-dwarf-rt_v5-rev1/mingw32/opt/lib -L/c/mingw720/prerequisites/i686-zlib-static/lib -L/c/mingw720/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware'
Thread model: posix
gcc version 7.2.0 (i686-posix-dwarf-rev1, Built by MinGW-W64 project)

Sorry, I dont use MinGW...

@muhammadmuzzammil1998
Copy link
Author

I am still getting this:
Output of

C:\Users\Muzzammil\go\src\golang.org\x\build\version\go1.10rc1\go1.10rc1.exe build -x -buildmode=c-shared
WORK=C:\Users\MUZZAM~1\AppData\Local\Temp\go-build552199190
mkdir -p $WORK\b001\
cat >$WORK\b001\importcfg.link << 'EOF' # internal
packagefile golang.org/x/build/version/go1.10rc1/swsh-keygen=C:\Users\Muzzammil\AppData\Local\go-build\ab\ab106d40aa55eb32a9e37a0e51b2aa101f88dd8ac6cfaf271ab4f35c4c2a02d7-d
packagefile crypto/rand=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rand.a
packagefile crypto/rsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rsa.a
packagefile crypto/x509=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\x509.a
packagefile encoding/pem=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\pem.a
packagefile flag=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\flag.a
packagefile golang.org/x/crypto/ssh=C:\Users\Muzzammil\AppData\Local\go-build\2e\2e887c7f928881231bec30d2f4a761b081e61466913de4d753f802aad8d7a2ba-d
packagefile io/ioutil=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\io\ioutil.a
packagefile os=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\os.a
packagefile runtime=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime.a
packagefile runtime/cgo=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\cgo.a
packagefile errors=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\errors.a
packagefile io=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\io.a
packagefile math/big=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\big.a
packagefile sync=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sync.a
packagefile syscall=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\syscall.a
packagefile bytes=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\bytes.a
packagefile crypto=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto.a
packagefile crypto/subtle=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\subtle.a
packagefile hash=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\hash.a
packagefile math=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math.a
packagefile crypto/aes=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\aes.a
packagefile crypto/cipher=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\cipher.a
packagefile crypto/des=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\des.a
packagefile crypto/dsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\dsa.a
packagefile crypto/ecdsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\ecdsa.a
packagefile crypto/elliptic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\elliptic.a
packagefile crypto/md5=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\md5.a
packagefile crypto/sha1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha1.a
packagefile crypto/sha256=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha256.a
packagefile crypto/sha512=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha512.a
packagefile crypto/x509/pkix=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\x509\pkix.a
packagefile encoding/asn1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\asn1.a
packagefile encoding/hex=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\hex.a
packagefile fmt=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\fmt.a
packagefile vendor/golang_org/x/crypto/cryptobyte=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\vendor\golang_org\x\crypto\cryptobyte.a
packagefile vendor/golang_org/x/crypto/cryptobyte/asn1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\vendor\golang_org\x\crypto\cryptobyte\asn1.a
packagefile net=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\net.a
packagefile net/url=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\net\url.a
packagefile reflect=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\reflect.a
packagefile strconv=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\strconv.a
packagefile strings=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\strings.a
packagefile time=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\time.a
packagefile unicode/utf8=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode\utf8.a
packagefile encoding/base64=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\base64.a
packagefile sort=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sort.a
packagefile bufio=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\bufio.a
packagefile crypto/hmac=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\hmac.a
packagefile crypto/rc4=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rc4.a
packagefile encoding/binary=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\binary.a
packagefile golang.org/x/crypto/curve25519=C:\Users\Muzzammil\AppData\Local\go-build\bb\bb843dc8dbbfe30a901cda21aa3bbd979bbf1c75fa4e2bbf6aae29fe17e01cf8-d
packagefile golang.org/x/crypto/ed25519=C:\Users\Muzzammil\AppData\Local\go-build\ea\ea60b92ec23b392c9b81a0ef0da92288ba18f084a3eddf82438323425c4b66a5-d
packagefile log=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\log.a
packagefile math/rand=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\rand.a
packagefile sync/atomic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sync\atomic.a
packagefile path/filepath=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\path\filepath.a
packagefile internal/poll=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\poll.a
packagefile internal/syscall/windows=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows.a
packagefile internal/testlog=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\testlog.a
packagefile unicode/utf16=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode\utf16.a
packagefile runtime/internal/atomic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\internal\atomic.a
packagefile runtime/internal/sys=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\internal\sys.a
packagefile math/bits=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\bits.a
packagefile internal/race=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\race.a
packagefile internal/syscall/windows/sysdll=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows\sysdll.a
packagefile internal/cpu=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\cpu.a
packagefile unicode=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode.a
packagefile crypto/internal/cipherhw=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\internal\cipherhw.a
packagefile context=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\context.a
packagefile internal/nettrace=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\nettrace.a
packagefile internal/singleflight=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\singleflight.a
packagefile internal/syscall/windows/registry=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows\registry.a
packagefile golang.org/x/crypto/ed25519/internal/edwards25519=C:\Users\Muzzammil\AppData\Local\go-build\1b\1b5986c147dc442a7997e479666d1ff7005f8ea3c58e907166e57865501c602d-d
EOF
mkdir -p $WORK\b001\exe\
cd $WORK\b001\exe\
"C:\\Users\\Muzzammil\\sdk\\go1.10rc1\\pkg\\tool\\windows_amd64\\link.exe" -o swsh-keygen -importcfg "C:\\Users\\MUZZAM~1\\AppData\\Local\\Temp\\go-build552199190\\b001\\importcfg.link" -buildmode=c-shared -buildid=XQh-aQn8urchlUc_WC4g/xN1cq1emaXzTZ8G5j_3j/8Fn9PNfFL1nZWibhj-Ch/XQh-aQn8urchlUc_WC4g -extld=gcc "C:\\Users\\Muzzammil\\AppData\\Local\\go-build\\ab\\ab106d40aa55eb32a9e37a0e51b2aa101f88dd8ac6cfaf271ab4f35c4c2a02d7-d"
# golang.org/x/build/version/go1.10rc1/swsh-keygen
C:\Users\Muzzammil\sdk\go1.10rc1\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.2.0/../../../../i686-w64-mingw32/bin/ld.exe: unrecognised emulation mode: i386pep
Supported emulations: i386pe
collect2.exe: error: ld returned 1 exit status

@AlexRouSg
Copy link
Contributor

You installed i686 which is 32 bit, the 64 bit one is named x86_64

@muhammadmuzzammil1998
Copy link
Author

@AlexRouSg
Oh, God... Is this setting ok?
image

@AlexRouSg
Copy link
Contributor

I don't have access to a windows machine so all I can say is if that doesn't work try changing the exception.
@mattn
Does the threads/exception matter?

@muhammadmuzzammil1998
Copy link
Author

@AlexRouSg
Well, this time I have something... It created a file just named "swsh-keygen", name of my project, with no extension.

image

Output of gcc -v after installing it with those settings

Using built-in specs.
COLLECT_GCC=C:\Program Files\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin\gcc.exe
COLLECT_LTO_WRAPPER=C:/Program\ Files/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/7.2.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-7.2.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw720/x86_64-720-posix-seh-rt_v5-rev1/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw720/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw720/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw720/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw720/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev1, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw720/x86_64-720-posix-seh-rt_v5-rev1/mingw64/opt/include -I/c/mingw720/prerequisites/x86_64-zlib-static/include -I/c/mingw720/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw720/x86_64-720-posix-seh-rt_v5-rev1/mingw64/opt/include -I/c/mingw720/prerequisites/x86_64-zlib-static/include -I/c/mingw720/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw720/x86_64-720-posix-seh-rt_v5-rev1/mingw64/opt/include -I/c/mingw720/prerequisites/x86_64-zlib-static/include -I/c/mingw720/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw720/x86_64-720-posix-seh-rt_v5-rev1/mingw64/opt/lib -L/c/mingw720/prerequisites/x86_64-zlib-static/lib -L/c/mingw720/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 7.2.0 (x86_64-posix-seh-rev1, Built by MinGW-W64 project)

Output of go1.10rc1.exe build -x -buildmode=c-shared

WORK=C:\Users\MUZZAM~1\AppData\Local\Temp\go-build310934758
mkdir -p $WORK\b001\
cat >$WORK\b001\importcfg.link << 'EOF' # internal
packagefile golang.org/x/build/version/go1.10rc1/swsh-keygen=C:\Users\Muzzammil\AppData\Local\go-build\ab\ab106d40aa55eb32a9e37a0e51b2aa101f88dd8ac6cfaf271ab4f35c4c2a02d7-d
packagefile crypto/rand=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rand.a
packagefile crypto/rsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rsa.a
packagefile crypto/x509=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\x509.a
packagefile encoding/pem=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\pem.a
packagefile flag=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\flag.a
packagefile golang.org/x/crypto/ssh=C:\Users\Muzzammil\AppData\Local\go-build\2e\2e887c7f928881231bec30d2f4a761b081e61466913de4d753f802aad8d7a2ba-d
packagefile io/ioutil=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\io\ioutil.a
packagefile os=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\os.a
packagefile runtime=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime.a
packagefile runtime/cgo=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\cgo.a
packagefile errors=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\errors.a
packagefile io=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\io.a
packagefile math/big=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\big.a
packagefile sync=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sync.a
packagefile syscall=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\syscall.a
packagefile bytes=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\bytes.a
packagefile crypto=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto.a
packagefile crypto/subtle=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\subtle.a
packagefile hash=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\hash.a
packagefile math=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math.a
packagefile crypto/aes=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\aes.a
packagefile crypto/cipher=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\cipher.a
packagefile crypto/des=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\des.a
packagefile crypto/dsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\dsa.a
packagefile crypto/ecdsa=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\ecdsa.a
packagefile crypto/elliptic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\elliptic.a
packagefile crypto/md5=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\md5.a
packagefile crypto/sha1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha1.a
packagefile crypto/sha256=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha256.a
packagefile crypto/sha512=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\sha512.a
packagefile crypto/x509/pkix=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\x509\pkix.a
packagefile encoding/asn1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\asn1.a
packagefile encoding/hex=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\hex.a
packagefile fmt=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\fmt.a
packagefile vendor/golang_org/x/crypto/cryptobyte=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\vendor\golang_org\x\crypto\cryptobyte.a
packagefile vendor/golang_org/x/crypto/cryptobyte/asn1=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\vendor\golang_org\x\crypto\cryptobyte\asn1.a
packagefile net=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\net.a
packagefile net/url=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\net\url.a
packagefile reflect=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\reflect.a
packagefile strconv=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\strconv.a
packagefile strings=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\strings.a
packagefile time=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\time.a
packagefile unicode/utf8=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode\utf8.a
packagefile encoding/base64=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\base64.a
packagefile sort=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sort.a
packagefile bufio=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\bufio.a
packagefile crypto/hmac=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\hmac.a
packagefile crypto/rc4=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\rc4.a
packagefile encoding/binary=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\encoding\binary.a
packagefile golang.org/x/crypto/curve25519=C:\Users\Muzzammil\AppData\Local\go-build\bb\bb843dc8dbbfe30a901cda21aa3bbd979bbf1c75fa4e2bbf6aae29fe17e01cf8-d
packagefile golang.org/x/crypto/ed25519=C:\Users\Muzzammil\AppData\Local\go-build\ea\ea60b92ec23b392c9b81a0ef0da92288ba18f084a3eddf82438323425c4b66a5-d
packagefile log=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\log.a
packagefile math/rand=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\rand.a
packagefile sync/atomic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\sync\atomic.a
packagefile path/filepath=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\path\filepath.a
packagefile internal/poll=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\poll.a
packagefile internal/syscall/windows=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows.a
packagefile internal/testlog=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\testlog.a
packagefile unicode/utf16=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode\utf16.a
packagefile runtime/internal/atomic=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\internal\atomic.a
packagefile runtime/internal/sys=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\runtime\internal\sys.a
packagefile math/bits=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\math\bits.a
packagefile internal/race=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\race.a
packagefile internal/syscall/windows/sysdll=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows\sysdll.a
packagefile internal/cpu=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\cpu.a
packagefile unicode=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\unicode.a
packagefile crypto/internal/cipherhw=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\crypto\internal\cipherhw.a
packagefile context=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\context.a
packagefile internal/nettrace=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\nettrace.a
packagefile internal/singleflight=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\singleflight.a
packagefile internal/syscall/windows/registry=C:\Users\Muzzammil\sdk\go1.10rc1\pkg\windows_amd64\internal\syscall\windows\registry.a
packagefile golang.org/x/crypto/ed25519/internal/edwards25519=C:\Users\Muzzammil\AppData\Local\go-build\1b\1b5986c147dc442a7997e479666d1ff7005f8ea3c58e907166e57865501c602d-d
EOF
mkdir -p $WORK\b001\exe\
cd $WORK\b001\exe\
"C:\\Users\\Muzzammil\\sdk\\go1.10rc1\\pkg\\tool\\windows_amd64\\link.exe" -o swsh-keygen -importcfg "C:\\Users\\MUZZAM~1\\AppData\\Local\\Temp\\go-build310934758\\b001\\importcfg.link" -buildmode=c-shared -buildid=XQh-aQn8urchlUc_WC4g/xN1cq1emaXzTZ8G5j_3j/8Fn9PNfFL1nZWibhj-Ch/XQh-aQn8urchlUc_WC4g -extld=gcc "C:\\Users\\Muzzammil\\AppData\\Local\\go-build\\ab\\ab106d40aa55eb32a9e37a0e51b2aa101f88dd8ac6cfaf271ab4f35c4c2a02d7-d"
"C:\\Users\\Muzzammil\\sdk\\go1.10rc1\\pkg\\tool\\windows_amd64\\buildid.exe" -w "C:\\Users\\MUZZAM~1\\AppData\\Local\\Temp\\go-build310934758\\b001\\exe\\swsh-keygen" # internal
cp $WORK\b001\exe\swsh-keygen swsh-keygen
rm -r $WORK\b001\

@AlexRouSg
Copy link
Contributor

That is the dll.

Now I suggest you google how to create shared libraries in Go as the code you linked is a program not a library so it would not work as you are expecting.

@ianlancetaylor
Issue turned out to be user error

@muhammadmuzzammil1998
Copy link
Author

@AlexRouSg
So I simply add extension .dll to it? Is it only x64? Also, can you please give me something to read about it?

Thanks

@AlexRouSg
Copy link
Contributor

Yes just add .dll or add the flag -o name.dll
Yes this is a x64 binary, you need to crosscompile to x86 if you want a x86 binary.

I can't help you much on what to read, just use google and ask around in the proper place
https://github.com/golang/go/wiki/Questions

@muhammadmuzzammil1998
Copy link
Author

Ok thank you guys for helping me out!
@ianlancetaylor @mattn @AlexRouSg

Thanks 👍

@golang golang locked and limited conversation to collaborators Jan 29, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-Windows
Projects
None yet
Development

No branches or pull requests

5 participants