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

rsrc merge failure: corrupt .rsrc section #39

Open
AllenDang opened this issue Jan 20, 2020 · 11 comments
Open

rsrc merge failure: corrupt .rsrc section #39

AllenDang opened this issue Jan 20, 2020 · 11 comments

Comments

@AllenDang
Copy link

C:/Tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: $WORK\b001\exe\a.out.exe: .rsrc merge failure: corrupt .rsrc section

The go generate command is
//go:generate goversioninfo -64 -icon=./resource/pipeline.ico -manifest=./resource/PipeIt.exe.manifest

My platform is Windows 10 64bit with go version go1.13.5 windows/amd64

@jonatino
Copy link

Did you end up fixing this at all?

@josephspurrier
Copy link
Owner

I don't have a Windows machine handy unfortunately - can you post the files so we can reproduce?

@josephspurrier
Copy link
Owner

josephspurrier commented Jul 3, 2020

Is there any way you can post the minimal fully executable code for me to test with?

@pitw
Copy link

pitw commented Jul 6, 2020

I have a similar problem. Created a test repo here:
https://github.com/pitw/test-goversioninfo

@ldstein
Copy link

ldstein commented Jul 17, 2020

While I don't use goversioninfo, I did experience the same issue when generating syso files using rsrc on Windows 10.

.syso files generated with rcrc -arch amd64 -manifest main.manifest -ico main.ico -o main.rsrc leads to a failure: corrupt .rsrc section error during "go build".

However, .syso files generated with rcrc -arch amd64 -manifest main.manifest -o main.rsrc work fine.

I finally managed to resolve the issue by downgrading from TDM-GCC 9.2.0 to TDM-GCC 5.1.0-2.

Kudos to @rodolfoag whose answer I found here.

@pitw Can confirm your test project compiles successfully using TDM-GCC 5.1.0-2.

@tc-hib
Copy link

tc-hib commented Aug 13, 2020

Hello.
rsrc has at least one bug : it doesn't align resources, while this seems mandatory (most tools can't read them properly otherwise)
windres aligns them on 8 bytes.

Edit : Tried a quick and dirty fix on pitw's test repo. It worked.

go get github.com/tc-hib/goversioninfo/cmd/goversioninfo
go generate
go build

⇨ No error.

go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo
go generate
go build

.rsrc merge failure: corrupt .rsrc section

@ldstein
Copy link

ldstein commented Aug 14, 2020

Nice, replaced github.com/akavel/rsrc with github.com/tc-hib/rsrc in my project. Now building successfully with TDM-GCC 9.2.0.

Thanks for the heads up @tc-hib

@linquize
Copy link
Contributor

When having C code to compile (such as github.com/mattn/go-sqlite3) + resource.syso exists, this error may occur

@tc-hib
Copy link

tc-hib commented Mar 5, 2021

@ldstein and others: if you are still using my fork please use the original one again as the bug has been properly fixed by akavel.
I've developed my own tool too: https://github.com/tc-hib/go-winres

And I'd like to delete my forks of rsrc and goversioninfo as my quick fix was bad.

@tc-hib
Copy link

tc-hib commented Mar 7, 2021

I'm sorry, looks like I talked a bit too early. Current version of rsrc still seems to require a bug fix.

@josephspurrier
Copy link
Owner

Just updated github.com/akavel/rsrc to v0.10.2. but as @tc-hib said, looks like there is still a bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants