On Tuesday, 8 April 2014 at 17:23:14 UTC, Byron wrote:
I have several libs compiled in vs2010 that I need to convert
to omf.
With the same setup I have this linked in win64, just want to
get win32.
I have tried coff2omf but it fails with:
coff2omf leveldb.lib
COFF2OMF: Converting
'd:\projects\leveldb\bin\release\tmp\leveldb.lib'
COFF2OMF: Ignoring unknown directive 'vc100-mt-1_56.lib"
/DEFAULTLIB' in
'd:\projects\leveldb\bin\release\tmp\leveldb.lib[.drectve]'
COFF2OMF: Ignoring unknown directive 'vc100-mt-1_56.lib"
/DEFAULTLIB' in
'd:\projects\leveldb\bin\release\tmp\leveldb.lib[.drectve]'
COFF2OMF: Ignoring unknown directive 'vc100-mt-1_56.lib"
/DEFAULTLIB' in
'd:\projects\leveldb\bin\release\tmp\leveldb.lib[.drectve]'
COFF2OMF: Ignoring unknown directive 'vc100-mt-1_56.lib"
/DEFAULTLIB' in
'd:\projects\leveldb\bin\release\tmp\leveldb.lib[.drectve]'
COFF2OMF: Ignoring unknown directive 'vc100-mt-1_56.lib"
/DEFAULTLIB' in
'd:\projects\leveldb\bin\release\tmp\leveldb.lib[.drectve]'
This lib does require some boost libs I have compiled, these
libs do end
with vc100-mt-1_56.lib. The look like
libboost_chrono-vc100-mt-1_.56.lib
So maybe the dash messing up coff2omf.
the digitalmars site says you need to convert the coff format
via link /
lib /convert [lib]. Is this only for really old version of vs?
link /lib /convert leveldb.lib
Microsoft (R) Library Manager Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : warning LNK4044: unrecognized option '/convert'; ignored
I have also tried objconv:
objconv -fomf leveldb.lib leveldb_omf.lib
Warning 1060: Different alignments specified for same segment,
.rdata.
Using highest alignment
...
Warning 1060: Different alignments specified for same segment,
.data.
Using highest alignment
Warning 1060: Different alignments specified for same segment,
.rdata.
Using highest alignment
...
Warning 1060: Different alignments specified for same segment,
.data.
Using highest alignment
Warning 1060: Different alignments specified for same segment,
.rdata.
Using highest alignment
....
Warning 1060
Input library: leveldb.lib, Format: COFF32, Output:
leveldb_omf.lib,
Format: OMF32
: Different alignments specified for same segment, .rdata.
Using highest
alignment
Warning 1060: Different alignments specified for same segment,
.rdata.
Using highest alignment
Warning 1060: Different alignments specified for same segment,
.rdata.
Using highest alignment
Warning 1060: Different alignments specified for same segment,
.rdata.
Using highest alignment
Warning 1060: Different alignments specified for same segment,
.rdata.
Using highest alignment
Warning 1060: Different alignments specified for same segment,
.rdata.
Using highest alignment
Warning 1060: Different alignments specified for same segment,
.rdata.
Using highest alignment
Supressing further warning messages
Error 2304: Word-size index exceeds 65535
Error 2304: Word-size index exceeds 65535
....
Supressing further warning messages
objconv seems to work on the boost lib files but not leveldb.lib
I tired messing tring to get dmc to compile boost, but there
are tons of
errors, to many to make me want to not go that path.
So does anyone have a fool prof way of converting coff to omf
libs. I
feel like this use to be easy..
Thanks,
-Byron
You can also look at http://www.agner.org/optimize/#objconv.
I used it quite a long time ago to convert OMF libs to COFF (the
opposite of what you need), and only for Win32.
But it looks reasonably up-to-date and it claims to support both
Win32/Win64.
Rgds,
Ettienne