target names so that both sets of rules can coexist in the same file.
The configure script selects which one to use.
- use patterns to build plugins.
- remove Makefile, which was specific to win32.
to do if they cannot be found.
- in try_dlopen, after find_handle() is called and returns 0 over
and over, it was ignoring the return value of tryall_dlopen. As
a result, sometimes the dlopen would fail and return 1 or more
errors but nobody would notice. The handle would be returned as
if the open had succeed, then any use of the handle would segfault
because handle->loader was NULL. I have solved this problem by
capturing the return value in errors, and then checking if errors>0
in the next if statement.
- fix faulty boolean logic in lt_dlopenext that caused it to only
search for libraries ending with .la. Now it says: if try_dlopen
created a nonzero handle, return it. Otherwise, if there were
any errors OTHER THAN file-not-found, return the NULL handle. If
the only errors were file-not-found, continue to search.
- just before loading the module in tryall_dlopen, do one final
call to access() to check for existence of the file. Without
this check, you sometimes get the "can't load module" error
when in fact the problem is "file not found".
before including <ltdl.h>. Otherwise it tries to export some symbols
from main.cc, which then conflict with the real ltdl when it gets linked.
- on win32 I am not using libtool to build the libraries, so I need to
use a different format string for module names. On win32 use "%s.dll".
- call lt_dlopenext() instead of lt_dlopen() because it searches for
filenames using various extensions including the libtool extension .la
and also the system's native library name (.so or whatever).
created in the first rev. When you're talking to Carbon libraries,
of course you should use Boolean instead of bx_bool. My global
search and replace missed such subtleties.
This avoids naming conflicts, since no other library is likely to
use bx_bool.
- I will apply this before release 2.0, but not until the feature freeze
has begun, because it will break almost every patch.
different versions of the code for wxWindows and non-wxWindows and the GDB
stub did not accept any command line options at all.
- IMPORTANT CHANGE: the quick start option used to cause two things:
1) read the bochsrc immediately, 2) start simulation immediately without
going into the config interface. This has changed in a subtle way.
Now, we always try to read the bochsrc immediately. Then if the quick
start option is on, we start the simulation immediately.
- add "Restore Factory Default Configuration" in text config menu. It was
already there in wx. Now the default choice is always "5. Begin simulation"
and because the bochsrc is always read now, this works.
- When the user chooses "Read configuration file" from either text mode
or wx interfaces, reset all bochs parameters first, then read in the
new file. This means that every time you read a configuration file
you are starting from a consistent "blank slate".
- move much of the code from bx_do_text_config_interface into bx_init_main
so that wxWindows and non-wxWindows code uses the same logic. There was
only a tiny bit left in bx_do_text_config_interface so I eliminated it.
- move the "help" message into a separate function print_usage()
- detect all flags (cmdline args that start with -) in a loop, instead of
a big if/else. This makes it easy to add others.
- fix problem with Carbon gui, so that -psn arg gets ignored
- print usage if you type -h, --help, or if flags are not recognized
- code that called io->set_log_action (that sets the log action for all
devices) was only called if the configuration interface was on; I'm not
sure why. Now it is called all the time.
- the wxWindows equivalent of main() is called MyApp::OnInit. Now OnInit
and main() are very similar. They both call bx_init_siminterface, then
bx_init_main (and quit if it fails), then show the config interface if
quickstart is off, and then simulate.
- modified: main.cc gui/control.cc gui/wxmain.cc