Opened 10 years ago

Last modified 9 years ago

#295 new defect

emxomf warning: Cycle detected by make_type.

Reported by: dmik Owned by:
Priority: normal Milestone:
Component: emx Version: 0.6.5
Severity: normal Keywords:
Cc: steve53@…

Description

When compiling large source files (like this: https://github.com/bitwiseworks/mozilla-os2/blob/master/content/base/src/nsDocument.cpp), you will often see this:

emxomf warning: Cycle detected by make_type.
emxomf info: parsing sym no.81366 type=64 at char ' ' in position 12:
slots:r54927

There is a patch to disable this warning in #220 (emxomf-04-no-hll-warnings.diff​) but Knut claims that emxomf should be fixed instead as it produces incorrect HLL info.

This ticket is to sort it out.

Attachments (3)

verbose-warnings.patch (3.4 KB) - added by Yuri Dario 10 years ago.
verbose-warnings-2.patch (3.7 KB) - added by Yuri Dario 10 years ago.
yuri-emxomf-verbose-warnings-3.patch (3.0 KB) - added by dmik 10 years ago.

Download all attachments as: .zip

Change History (10)

comment:1 Changed 10 years ago by dmik

Component: emxlibc

Note that the current RPM builds have the emxomf-04-no-hll-warnings.diff patch applied for the time being.

Last edited 10 years ago by dmik (previous) (diff)

comment:2 Changed 10 years ago by Steven Levine

Cc: steve53@… added

Changed 10 years ago by Yuri Dario

Attachment: verbose-warnings.patch added

comment:3 Changed 10 years ago by Yuri Dario

Show warnings only in verbose mode.

Changed 10 years ago by Yuri Dario

Attachment: verbose-warnings-2.patch added

comment:4 Changed 10 years ago by Yuri Dario

This newer patch includes the previous one.

comment:5 Changed 10 years ago by dmik

BTW, there are more warnings that happen to be produced when compiling large files (and not only them):

emxomf warning: Unknown range type: 16..0
emxomf info: parsing sym no.3 type=128 at char ' ' in position 22:
__float128:t1=r0;16;0;
emxomf warning: syntax error in stabs:   (off 22)
 stabs: __float128:t1=r0;16;0;
emxomf info: parsing sym no.3 type=128 at char ' ' in position 22:
__float128:t1=r0;16;0;

A good test case for all that is e.g. this file: https://github.com/bitwiseworks/mozilla-os2/blob/master/content/base/src/nsDocument.cpp. Note that this file was also the reason #293 was introduced by Steven. It would simply fail to compile with Index too large before and with the Steven's patch applied it gives just a warning:

emxomf warning: HLL debug suppressed for symbol '__ZN7mozilla15FullscreenRoots9sInstanceE' - index 33100 too large
emxomf warning: HLL debug suppressed for symbol '_gPendingPointerLockRequest' - index 39164 too large

I don't know though if it's something that may be fixed or it's an invincible OMF format limitation.

And to clarify, this ticket is meant to fix the source of the problem, not hide warnings — these are only the temporary solution, to stop annoying regular developers for which the emxomf warnings like the one in the subject are completely meaningless.

comment:6 Changed 10 years ago by dmik

I'm uploading the current cumulative patch for verbose warnings that also includes the one from #251 and matches the RPM build of libc (emxomf) 0.6.5-20.

Changed 10 years ago by dmik

comment:7 Changed 9 years ago by bird

Component: libcemx
Milestone: libc-0.6.6

r3920 implements suppressing stabs -> hll conversion warnings. By default there will be one warning that there are problems, but the user is spared all the details. For users which doesn't want that warning (or the one from #293), use set EMXOMFOPT=-q or specify -q on the emxomf command line. (Equally, for users wishing to see it all, adding the -v to the emxomf command line or set EMXOMFOPT=-v will show them like before.)

At present, I'm not going to spend time fixing the conversion issues that newer gcc versions present to emxomf, so I'm removing this ticked from the 0.6.6 milestone.

Note: See TracTickets for help on using tickets.