 |
BorlandTalk.com Borland discussion newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Guest
|
Posted: Thu Jan 25, 2007 11:31 pm Post subject: Overlay index in SEGDEF is zero |
|
|
This is a bug report:
Overlay index values in SEGDEF/SEGDEF32 records the compiler is spitting out
are set to zero. This violates original Intel OMF spec and TIS specs. Its
already emitting a null LNAMES string (usually as the 3rd LNAME in the
list). Using the index of a null LNAME string is the correct way to do this
rather than using zero. |
|
| Back to top |
|
 |
Ed Mulroy Guest
|
Posted: Thu Jan 25, 2007 11:33 pm Post subject: Re: Overlay index in SEGDEF is zero |
|
|
Omitting the version of a program in a problem report limits the value of
the report. What version of Borland C++ was used to develop the information
in your report?
.. Ed
| Quote: | cutaway wrote in message
news:45b8e6c8 (AT) newsgroups (DOT) borland.com...
This is a bug report:
Overlay index values in SEGDEF/SEGDEF32 records the compiler
is spitting out are set to zero. This violates original Intel OMF spec
and TIS specs. Its already emitting a null LNAMES string (usually
as the 3rd LNAME in the list). Using the index of a null LNAME
string is the correct way to do this rather than using zero. |
|
|
| Back to top |
|
 |
Guest
|
Posted: Fri Jan 26, 2007 1:40 am Post subject: Re: Overlay index in SEGDEF is zero |
|
|
All 32 bit versions after BC 4.52. Basically anything with the newer
backend. All record checksums are also bogus always being zero. The 16 bit
compilers did correct checksums.
"Ed Mulroy" <dont_email_me (AT) bitbuc (DOT) ket> wrote in message
news:45b8e9be$1 (AT) newsgroups (DOT) borland.com...
| Quote: | Omitting the version of a program in a problem report limits the value of
the report. What version of Borland C++ was used to develop the
information
in your report?
. Ed |
|
|
| Back to top |
|
 |
Ed Mulroy Guest
|
Posted: Fri Jan 26, 2007 5:31 am Post subject: Re: Overlay index in SEGDEF is zero |
|
|
A trouble report was publicly acknowledged and posted in 1996 about overlays
using Borland C++ 5 and above. The linker incorrectly implemented overlays.
To correct it use the linker from BC++ 4.5, a product whose CD shipped with
BC++ versions 5.*.
Please post Borland C++ questions in the newsgroup where it is covered,
borland.public.cpp.borlandcpp
As you can see from the 'cppbuilder' in its name, this group is for Borland
C++ Builder, the current compiler. It is 32 bit only and does not do
overlays.
.. Ed
| Quote: | cutaway wrote in message
news:45b90504 (AT) newsgroups (DOT) borland.com...
All 32 bit versions after BC 4.52. Basically anything with the newer
backend. All record checksums are also bogus always being zero.
The 16 bit compilers did correct checksums. |
|
|
| Back to top |
|
 |
Guest
|
Posted: Fri Jan 26, 2007 9:10 am Post subject: Re: Overlay index in SEGDEF is zero |
|
|
Ummm...this has NOTHING to do with using overlays. This is about bogus
index values when you're NOT DOING OVERLAYS.
Builder is indicating the NON-PRESENSE of overlays incorrectly.
BTW, TASM32 is *NOT* afflicted with this disease, so if zero indexes are be
your new (non)standard, then you need to fix (break) TASM32 to make it
consistent with the BUILDER product.
So which is it to be? Is Builder broken or is TASM32 broken?
Pick one. You can't have it both ways.
"Ed Mulroy" <dont_email_me (AT) bitbuc (DOT) ket> wrote in message
news:45b93f5e (AT) newsgroups (DOT) borland.com...
| Quote: |
As you can see from the 'cppbuilder' in its name, this group is for
Borland
C++ Builder, the current compiler. It is 32 bit only and does not do
overlays.
. Ed |
|
|
| Back to top |
|
 |
Guest
|
Posted: Fri Jan 26, 2007 9:10 am Post subject: Re: Overlay index in SEGDEF is zero |
|
|
Well, the tools I'm producing do. Their whole purpose in life is to work
with generic OBJ's.
If Borland has chosen to knowingly ignore the TIS standard, this is
something that should be stated up front, so 3rd parties like me know what
we're getting into should we (perhaps foolishly) try to support Borland's
products.
Personally, I don't give a damn. Its easy for me to fix this bogus index
brokenness in my product and morph the output OBJ into TIS standard
compliance. In fact, I've already implemented a -Fi switch that does so in
the past couple of days. I also fix your bad checksums, optimize the
LINNUM's, LNAMES, PUBDEF's, EXTDEF's, and FIXUPS.
I used to work for Borland in the Turbo C group back in the late 80's. It
saddens me to see an attitude like yours has apparently taken hold. Back
then, we'd have just fixed it rather than justifying and denying it. What
happend to the likes of Jervis, Kukol and Stafford? All gone I suppose...
"Ed Mulroy" <dont_email_me (AT) bitbuc (DOT) ket> wrote in message
news:45b987c4$1 (AT) newsgroups (DOT) borland.com...
| Quote: | ...I don't normally dissasemble binaries.
. Ed |
|
|
| Back to top |
|
 |
Ed Mulroy Guest
|
Posted: Fri Jan 26, 2007 9:10 am Post subject: Re: Overlay index in SEGDEF is zero |
|
|
| Quote: | Pick one. You can't have it both ways.
|
Luckily I don't have to pick anything. I use both C++ Builder and Tasm32,
often in the same program, and they work. I don't normally dissasemble
binaries.
.. Ed
| Quote: | cutaway wrote in message
news:45b974ee$1 (AT) newsgroups (DOT) borland.com...
Ummm...this has NOTHING to do with using overlays. This is
about bogus index values when you're NOT DOING OVERLAYS.
Builder is indicating the NON-PRESENSE of overlays incorrectly.
BTW, TASM32 is *NOT* afflicted with this disease, so if zero indexes
are be your new (non)standard, then you need to fix (break) TASM32
to make it consistent with the BUILDER product.
So which is it to be? Is Builder broken or is TASM32 broken?
Pick one. You can't have it both ways. |
|
|
| Back to top |
|
 |
vavan Guest
|
Posted: Fri Jan 26, 2007 3:54 pm Post subject: Re: Overlay index in SEGDEF is zero |
|
|
On Fri, 26 Jan 2007 00:47:06 -0500, <cutaway (AT) bellsouth (DOT) net> wrote:
| Quote: | Well, the tools I'm producing do. Their whole purpose in life is to work
with generic OBJ's.
|
I wonder where can I see your tools?
| Quote: | If Borland has chosen to knowingly ignore the TIS standard, this is
something that should be stated up front, so 3rd parties like me know what
we're getting into should we (perhaps foolishly) try to support Borland's
products.
|
well, according to Yury Haron (author of ulink linker) there are many
incompatibilities in borland's tools so he had to workaround some of
them
--
Vladimir Ulchenko aka vavan |
|
| Back to top |
|
 |
Guest
|
Posted: Fri Jan 26, 2007 5:59 pm Post subject: Re: Overlay index in SEGDEF is zero |
|
|
As a general statement, there's a lot of weird stuff in OBJ's Vlad ;->
I've seen Ryan McFarland Fortran compilers emitting multiple THEADR/MODEND
sets in a single OBJ (16 bit TLINK's only see the first set, MS's LINK works
OK).
I've seen Microfocus COBOL injecting crap zero padding at the end.
Microfocus also allows their emitted namespace to contain dashes.
Many earlier versions of MASM don't set the "big bit" correctly for exactly
64K segments.
Some RM Fortran compilers emit bogus (but not zero) checksums.
Microsoft's later 16 bit C/C++ compilers are emitting empty CV info in
SEGDEF32's (even when you didn't call for any debug info) - undoubtedly to
sabotage using the OBJ's for OS/2 ;->
SLR's OPTASM will violate the charset specs for a THEADR string.
MS's BASCOM did something weird I don't remember at the moment...
This project has been quite an "adventure".
Today I've been working on Borland VIRDEF support and it will probably be
done tomorrow sometime. The only major record support missing after that is
COMDAT's. I'll send you a snapshot after the VIRDEF stuff goes in. I would
like to see it run against a bunch of different compilers and assemblers to
see what shakes out.
In particular I'd like people to beat on the threaded fixup
optimizer/unoptimizer. Some TLINK's behaved rather badly when they
encountered threaded fixups, so I put in the fixup "unoptimizer" to remove
all threaded fixup references so people can link foreign compiler produced
OBJ's using TLINK. On the MS produced OBJ's I've tested against, the
threaded fixup "optimizer" does a better job of picking what to thread than
the Microsoft compilers did every time. Borland tools never generated
threaded fixups, so there's a huge OBJ size win runing the optimizer against
them when you link Borland's stuff with some linker that can handle the
threaded fixups correctly.
I also put in a LINNUM/LINN32 record optimizer that can shrink the OBJ's
down considerably for 32 bit code. All the Borland 32 bit backends spit out
LINN32's even when the code offets never exceeded 64K. It takes a really
large blob of code to have more than 64K in a single OBJ, so that situation
happens almost every time and Borland is wasting 2 bytes on every line
number subrecord.
"vavan" <VavanRemove (AT) ThisSantel (DOT) ru> wrote in message
news:tmjjr29i5trqku9v3k6qdqck1qlat7eokg (AT) 4ax (DOT) com...
| Quote: | On Fri, 26 Jan 2007 00:47:06 -0500, <cutaway (AT) bellsouth (DOT) net> wrote:
Well, the tools I'm producing do. Their whole purpose in life is to work
with generic OBJ's.
I wonder where can I see your tools?
well, according to Yury Haron (author of ulink linker) there are many
incompatibilities in borland's tools so he had to workaround some of
them
--
Vladimir Ulchenko aka vavan |
|
|
| Back to top |
|
 |
vavan Guest
|
Posted: Fri Jan 26, 2007 6:37 pm Post subject: Re: Overlay index in SEGDEF is zero |
|
|
On Fri, 26 Jan 2007 06:59:57 -0500, <cutaway (AT) bellsouth (DOT) net> wrote:
| Quote: | all threaded fixup references so people can link foreign compiler produced
OBJ's using TLINK. On the MS produced OBJ's I've tested against, the
|
aforementioned ulink allows "mixed" linking. I personally never needed
such capability but you could communicate with Yury if you need
well-informed opinion
--
Vladimir Ulchenko aka vavan |
|
| Back to top |
|
 |
Ed Mulroy Guest
|
Posted: Fri Jan 26, 2007 10:51 pm Post subject: Re: Overlay index in SEGDEF is zero |
|
|
| Quote: | ...I used to work for Borland in the Turbo C group back in
the late 80's...
|
We met with the TC developers at Borland during the annual meetings. It is
suprising that you do are not aware that no TeamB members are Borland
employees. If you did development back then we should have met at least
once. I of course cannot know who you are because you are on here cloaked,
using an alias instead of your name.
| Quote: | ...It saddens me to see an attitude like yours has apparently
taken hold ...
|
You read this wrong. I come here on my own time, to help fellow users.
When faced with someone who comes here in assertive mode, I can choose to
play or not play his game. I choose to not play.
.. Ed
| Quote: | cutaway wrote in message
news:45b9932b$1 (AT) newsgroups (DOT) borland.com...
Well, the tools I'm producing do. Their whole purpose in life is to work
with generic OBJ's.
If Borland has chosen to knowingly ignore the TIS standard, this is
something that should be stated up front, so 3rd parties like me know what
we're getting into should we (perhaps foolishly) try to support Borland's
products.
Personally, I don't give a damn. Its easy for me to fix this bogus index
brokenness in my product and morph the output OBJ into TIS standard
compliance. In fact, I've already implemented a -Fi switch that does so
in
the past couple of days. I also fix your bad checksums, optimize the
LINNUM's, LNAMES, PUBDEF's, EXTDEF's, and FIXUPS.
I used to work for Borland in the Turbo C group back in the late 80's. It
saddens me to see an attitude like yours has apparently taken hold. Back
then, we'd have just fixed it rather than justifying and denying it. What
happend to the likes of Jervis, Kukol and Stafford? All gone I suppose... |
|
|
| Back to top |
|
 |
David Dean [CodeGear] Guest
|
Posted: Sat Jan 27, 2007 4:00 am Post subject: Re: Overlay index in SEGDEF is zero |
|
|
In article <45b8e6c8 (AT) newsgroups (DOT) borland.com>, <cutaway (AT) bellsouth (DOT) net>
wrote:
| Quote: | This is a bug report:
Overlay index values in SEGDEF/SEGDEF32 records the compiler is spitting out
are set to zero. This violates original Intel OMF spec and TIS specs. Its
already emitting a null LNAMES string (usually as the 3rd LNAME in the
list). Using the index of a null LNAME string is the correct way to do this
rather than using zero.
|
http://qc.codegear.com is our bug tracking system. I welcome a good
test case.
--
-David Dean
CodeGear C++ QA Engineer
<http://blogs.codegear.com/ddean/> |
|
| Back to top |
|
 |
Guest
|
Posted: Sat Jan 27, 2007 3:25 pm Post subject: Re: Overlay index in SEGDEF is zero |
|
|
David, I just sent you a nifty toy and some instructions to play with that
will reproduce this.
"David Dean [CodeGear]" <david.dean.no (AT) spam (DOT) codegear.com> wrote in message
news:david.dean.no-B1805F.14001426012007 (AT) killface (DOT) local...
| Quote: | In article <45b8e6c8 (AT) newsgroups (DOT) borland.com>, <cutaway (AT) bellsouth (DOT) net
wrote:
This is a bug report:
Overlay index values in SEGDEF/SEGDEF32 records the compiler is spitting
out
are set to zero. This violates original Intel OMF spec and TIS specs.
Its
already emitting a null LNAMES string (usually as the 3rd LNAME in the
list). Using the index of a null LNAME string is the correct way to do
this
rather than using zero.
http://qc.codegear.com is our bug tracking system. I welcome a good
test case.
--
-David Dean
CodeGear C++ QA Engineer
http://blogs.codegear.com/ddean/ |
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|