Bug 2670 - building frysk-gui depends on files.list order
Summary: building frysk-gui depends on files.list order
Status: RESOLVED WONTFIX
Alias: None
Product: frysk
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Andrew Cagney
URL:
Keywords:
Depends on:
Blocks: 1839 2004 2104 2654
  Show dependency treegraph
 
Reported: 2006-05-17 14:41 UTC by Stan Cox
Modified: 2006-06-10 18:57 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
reproducing test case (23.98 KB, application/octet-stream)
2006-05-17 15:27 UTC, Stan Cox
Details
Please use this makefile instead of the one in 2670.tbz (106 bytes, application/octet-stream)
2006-05-17 15:32 UTC, Stan Cox
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Stan Cox 2006-05-17 14:41:04 UTC
Building frysk-gui sometimes gives an error like the following (this is trimmed
down).  If the order of files.list is changed then it works okay. 

gcj -C -d . -classpath . @./files.list  # files in one order
ExitNotificationObserver.java: In class
'frysk.gui.monitor.observers.ExitNotificationObserver':
ExitNotificationObserver.java: In constructor '()':
ExitNotificationObserver.java:44: error: Can't find method ‘dontSaveObject()’ in
type ‘frysk.gui.monitor.actions.TaskAction’.
                myAction.dontSaveObject();
                           ^
ExitNotificationObserver.java:46: error: Can't find method
‘addAction(Lfrysk/gui/monitor/actions/TaskAction;)’ in type
‘frysk.gui.monitor.actions.TaskActionPoint’.
                this.taskActionPoint.addAction(myAction);
                                        ^
2 errors
% gcj -C -d . -classpath . @./files0.list   # files in another order
% cat files.list
ExitNotificationObserver.java
AddTaskObserverAction.java
TaskAction.java
% cat files0.list
AddTaskObserverAction.java
ExitNotificationObserver.java
TaskAction.java
Comment 1 Stan Cox 2006-05-17 15:27:46 UTC
Created attachment 1031 [details]
reproducing test case
Comment 2 Stan Cox 2006-05-17 15:32:37 UTC
Created attachment 1032 [details]
Please use this makefile instead of the one in 2670.tbz
Comment 3 Andrew Cagney 2006-05-30 06:32:05 UTC
- Is the test expected to pass, or fail?  At present it fails causing the test
run to also fail.

- Are all the class files really needed (remember the code is GPL so being able
to build from the most natural form is a requirement)?
Comment 4 Stan Cox 2006-05-30 14:20:47 UTC
Subject: Re:  building frysk-gui depends on files.list order

cagney at redhat dot com wrote:
> ------- Additional Comments From cagney at redhat dot com  2006-05-30 06:32 -------
> - Is the test expected to pass, or fail?  At present it fails causing the test
> run to also fail.

The test reproduces the problem, so if gcj has the problem (always true 
at present I believe) then the test will fail.

> - Are all the class files really needed (remember the code is GPL so being able
> to build from the most natural form is a requirement)?

Unfortunately, that is the minimal testcase I could come up with. 
Refactoring things caused the problem to go away.  I pinged Bryce. 
Perhaps knowing what the fix is will enable writing a more minimal test.


Comment 5 Andrew Cagney 2006-06-09 19:48:59 UTC
Index: frysk-imports/tests/ChangeLog
2006-06-09  Andrew Cagney  <cagney@redhat.com>

        * Makefile.am (frysk2670_FILES): Drop frysk2670/files0.list and
        frysk2670/files.list.
        (frysk2670/gcj.sh): List files explicitly.
        * frysk2670/files0.list: Delete.
        * frysk2670/files.list: Delete.
Comment 6 Andrew Cagney 2006-06-10 18:50:17 UTC
This greatly simplifies the test, it was done as a sequence of incremental commits.

2006-06-10  Andrew Cagney  <cagney@redhat.com>

        * frysk2670/Action.java: Move ...
        * frysk2670/one/Action.java: ... to here.
        * frysk2670/AddTaskObserverAction.java: Move ...
        * frysk2670/one/AddTaskObserverAction.java: .. to here.
        * frysk2670/ExitNotificationObserver.java: Move ...
        * frysk2670/one/ExitNotificationObserver.java: ... to here.
        * frysk2670/TaskAction.java: Move ...
        * frysk2670/one/TaskAction.java: ... to here.
        * Makefile.am: Update.
        (XFAIL_TESTS): Add frysk2670/gcj.sh.

        * Makefile.am (frysk2670/gcj.sh): Do not pass frysk.jar to GCJ.
        Add $(srcdir) to include path.
        (EXTRA_DIST): Remove frysk.jar.
        * frysk2670/frysk.jar: Delete.
        * frysk2670/other/Action.java: New file.
        * frysk2670/Action.java: Change package to "one".
        * frysk2670/AddTaskObserverAction.java: Ditto.
        * frysk2670/ExitNotificationObserver.java: Ditto.
        * frysk2670/TaskAction.java: Ditto.

        * frysk2670/LiaisonItem.java: Delete.
        * frysk2670/Action.java: Fold in LiaisonItem.java, simplify.
        * frysk2670/TaskAction.java: Simplify.
        * frysk2670/Action.java: Update.
        * frysk2670/AddTaskObserverAction.java: Update.
        * frysk2670/ExitNotificationObserver.java: Update.
        * Makefile.am (frysk2670_FILES): Remove LiaisonItem.java.

        * Makefile.am (frysk2670_FILES): Remove GuiObject.java.
        (frysk2670/gcj.sh): Explicitly check for exit status.
        * frysk2670/GuiObject.java: Delete.
        * frysk2670/LiaisonItem.java: Merge in GuiObject.java.
        * frysk2670/AddTaskObserverAction.java: Update.
        * frysk2670/ExitNotificationObserver.java: Update.

        * Makefile.am (frysk2670/gcj.sh): Use frysk2670_FILES.
        (frysk2670_FILES): Add LiaisonItem.java, Event.java, and
        GuiObject.java.
        * frysk2670/LiaisonItem.java: Copy from frysk-gui, trim down.
        * frysk2670/Event.java: Ditto.
        * frysk2670/GuiObject.java: Ditto.
Comment 7 Andrew Cagney 2006-06-10 18:57:15 UTC
Pushed upstream, test marked as XFAIL:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27985

Work around is to, when there are duplicate object names, only have the local
one in scope.