ADE List of Bugs

Generated on January 15, 2023

by Jörg Höhle, Joerg.Hoehle@gmd.de

[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document describes known bugs in software integrated into the ADE.

1 How you can help

There is an incredible amount of programmer talent available in the Amiga community, with an incalculable amount of hours going into producing demos, freely distributable software, shareware, and other such goodies. If only 1% of that effort could be harnessed to improve the ADE, we could easily have a standard set of freely available tools that would rival any commercially available tools for the Amiga.

You do not have to be an expert AmigaOS programmer to help. Neither do you have to be an expert in compiler or other software tools technology. All you have to do is be willing to learn and be willing to work in a community effort.

As you read the bug list, look for things that you think are within your capabilities to work on. If you think of something interesting that either needs doing by yourself or someone else, send that suggestion to the maintainer of this list. Tackle as big or as small of a bug as your skills and available time permits. Think of it as "adopting a program".

Another option is to choose a project among the ADE-PROJECTS list. Another option is to pick something not in the PROJECTS list but that you are either familar with, having ported it to other systems, or that you think would be useful, and tackle that.

When you submit a bug report, please do it in a form that eases the integration in this list, by

Send bug reports about ixemul.library to ‘ade-ixemul@ninemoons.com’.
Send bug reports about gcc and associated tools to ‘ade-gcc@ninemoons.com’.
Send bug reports about other ADE tools to ‘ade@ninemoons.com’.
Tell others that you are interested in working on a program or a project by sending e-mail to ‘ade-projects@ninemoons.com’ and see if anyone else is already working on it or wants to help in some way.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2 Rewards

Be assured that everybody will be happy if you write a good bug-report and even more if you kill any bug in this list!


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3 List of Known Bugs


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 GNU C (C++, ObjC) Compiler

GCC output is affected by bugs in the assembler and linker. See section GNU Assembler and Linker.

Bug

Poor code is generated when using new inlines for varargs functions

Description

Using libamiga.a is not that bad it’s told so often. It’s much better to use the varargs stubs from libamiga.a. The defines from the inlines result in very poor code. Actually your program becomes bigger and slower because of the array filling.

Reported

by Gunther Nikl <gnikl@informatik.uni-rostock.de> (16-Jul-96)

Work-around

Use the stack-based functions found in libamiga.a: #undef concerned inline defines so that libamiga.a gets linked in.

Status

[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.1 gcc — C front end

Bug

make GCC accept absolute Amiga-style pathnames. GCC cannot be used without ‘ixprefs’ "translate /" settings on.

Description

The old GCC-2.3.3 could deal with gcc Source:foo.c or gcc /foo.c (parent directory) while now, you must use gcc /Source/foo.c or gcc ../foo.c. These UNIXish references will be put in preprocessor #line directives and GDB debugging information, causing other programs (GNUEmacs among them) not to be able to load/edit the source files.

Reported

by <Joerg.Hoehle@gmd.de> (9-Jul-96)

Volunteers
Difficulty

The difficult part is to integrate the changes in such a way that one can still use configure; make, not the actual change.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.2 g++ — C++ front end


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.3 cpp — preprocessor


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.4 cc1 — actual C compiler

Bug

fixed or forbidden register was spilled

Description

Some inline functions/macros use lots of registers, especially BltBitMap(). RawDoFmt() has also been reported to be involved in such a situation.

Reported

by various

Work-around

Work-around by using stack-based function calls instead of inlines. Use libamiga.a/sprintf() instead of RawDoFmt().

Volunteers

Kamil Iskra <kiskra@ernie.icslab.agh.edu.pl> is the maintainer of the "new" inlines but knowing this won’t help you.

Difficulty

Rewrite your code differently.

Status

[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 GNU Assembler and Linker

The programs ‘as’ and ‘ld’ are used by ‘gcc’. They are not found in the GCC package but in binutils, How programs are packaged.

Bug

Executables crash with 8000000x gurus when using ‘-fbaserel’ or ‘-resident’. Kamil Iskra reports fd2inline produces MungWall hits on DH1 when using ‘-resident’.

Description

Probably a bug in just ‘ld’, not ‘as

Reported

Kamil Iskra <kiskra@ernie.icslab.agh.edu.pl> says ‘-resident’ is broken on 10-Jul-96.

Volunteers

Daniel Verité <daniel@brainstorm.eu.org> as far as ld is concerned

Difficulty

Hard to locate possible bug location in linker source code

Status

-resident’ still broken as of ADE 960714 release


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2.1 as — GNU assembler


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2.2 ld — GNU linker

Daniel Verité <daniel@brainstorm.eu.org> is the current maintainer.

Switching from the old binutils linker to the binutils-2.x series has been causing lots of crashes, for reasons as various as non-68000 code generation, failure to execute autoinit sections (affecting Libnix, see section Libnix — Using the ‘-noixemul’ option), bad loadfile hunk structure and more.

Bug

Executables crash with 8000000x gurus when using ‘-s’ together with ‘-resident’ option.

Status

-s works now, but -resident is still broken.

Work-around

Don’t use -s, use the separate strip utility instead. Better: update to at least version 960530 of ld.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3 ixemul.library

Hans Verkuil <hans@wyst.hobby.nl> is the current maintainer.

The pdksh shell stresses the UNIX-compatibility of ixemul.library. See section sh/ksh — pdksh.

Bug

fcntl(,, O_NONBLOCK) doesn’t work

Description

From ‘RPM’ file: ‘build/pack.c

 fcntl(fromCpio[0], F_SETFL, O_NONBLOCK);
 bytes = read(fromCpio[0], buf, sizeof(buf));

When read() can’t read anything from the file (in this case a pipe) it returns -1. But read() waits, so the program is blocked.

Reported

by Kristof Depraetere <Kristof.Depraetere@rug.ac.be> (6-Jul-96)

Work-around

ioctl(fh, FIONBIO, 1);

Status

Fixed in the yet unreleased ixemul-44.0.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.4 sh/ksh — pdksh

The shell ‘ADE:bin/sh’ is a link to ‘ADE:bin/ksh’, which is a port of the pdksh package, a reimplementation of the Korn shell. It is freely distribuable and reasonably compatible with the Bourne shell and is therefore used as the basic UNIX shell within the ADE.

Bug

^C doesn’t work for non ixemul-programs when run inside pdksh.

Description

a mixed pdksh/ixemul bug?

Reported

by <Joerg.Hoehle@gmd.de> (3-Jul-1996)

Volunteers
Difficulty

Tough

Status

^C is disabled as of ixemul V43.1

Bug

really not a gcc bug?

Description

After updating locally to ixemul 44.0, the rcs conf.sh script stopped working correctly at the fread test. This failure was reduced to the test case included below. If the compile + run does not succeed on the first combination of types, then the test fails to deduce the right types. With ixemul 43.2, it just happened that for conf.sh the first combination was the right one, but the return type of fread changed in 44.0, triggering this bug.

To make the below test succeed, edit ‘a.c’ to change the hardwired types of foo() to be ‘int foo (int arg);’ and do ‘sh a.sh’. When run on a Unix system, the test works no matter what combination of types foo() has.

/* a.c --- Change these types to test */
long foo (long arg);

type foo (argtype arg) {}

main () { exit (0); }

——– a.sh

#! /bin/sh
for type in int long
do
	for argtype in int long
	do
		echo trying type=$type, argtype=$argtype
		(gcc -Dargtype=$argtype -Dtype=$type a.c && a.out) && echo "FOUND IT" && break
	done && break
done || {
	echo $0: cannot deduce types
	exit 1
}
echo $0: deduced types $type, $argtype
Reported

on Sun, 18 Aug 1996, by fnf@ninemoons.com (Fred Fish)

Work-around
Status

bug triggered by fread() return type changing in ixemul-44.0


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.5 Libnix — Using the ‘-noixemul’ option

Maintainers: Gunther Nikl <gnikl@informatik.uni-rostock.de> and Matthias Fleischer <fleischr@izfm.uni-stuttgart.de>

Bug

stdio buffer size is 1KB by default

Description

The default should be somewhere between 8KB and 32KB. DiskSpeed shows extremely poor results for buffers below 4KB.

Reported

by <Joerg.Hoehle@gmd.de> (12-Jun-1996)

Work-around

setvbuf(), but you don’t want to modify foreign code for that

Difficulty

probably easy

Bug

-noixemul compiled binaries guru.

Description

Caused since Libnix1.1 by the use of linker features (autoinit sections) which were broken in the binutils-2 linker.

Work-around

Update to at least version 960530 of ld.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.6 tar — Tape Archives

Bug

tar does not accept Amiga filenames containing a colon, thus tar -tfv Archive:gcc-2.7.2.tar does not work.

Description

new "feature" makes tar interpret the name before the colon as a remote host name, which is bad on the Amiga. Either drop the remote option completely or change the syntax in a portable way.

The easiest way to circumvent the additional cmd line option is to add flag_force_local = 1 at the top of tar.c/decode_options(). This is ok as long as no one wants to use tar remotely (which doesn’t work anyway, I [Lars Hecking] am told. This feature needs the second fork() in buffer.c/child_open(). And rexec(3), methinks.)

Reported

by <Joerg.Hoehle@gmd.de> (4-Jul-1996)

Work-around

Use ‘--force-local

Volunteers

Joerg.Hoehle@gmd.de is working on it, Hans Verkuil <hans@wyst.hobby.nl> has supplied a patch adding a new ‘--force-remote’ switch.

Difficulty

Seems easy

Status

A report about the "colon is used in pathnames of several OS" problem has been posted to gnu.utils.bugs and been "filed" by Francois Pinard <pinard@iro.umontreal.ca>, the GNU-tar maintainer.

Bug

tar xvMf /fd0 does not work with ‘FD0:’ RawDiskHandler.

Description

On a UNIX box, prepare a disk with tar cvMf /dev/fd0 Verzeichnis. Back on the Amiga, all I get is a requester saying ‘Free: corrupted segment’ after the first fileheader. It does work with an old tar of mine.

Lars Hecking <lhecking@nmrc.ucc.ie> adds: I have tried to find this bug and failed. AFAIR, the GNU tar port on Aminet was compiled with SAS/C and should be less functional than the ADE version wrt stubbed-out Unix functions/syscalls. I think even compiling the SAS’d sources with gcc doesn’t make ‘-M’ work. Which leads me to the conclusion that hhere is either a bug in tar which doesn’t show with SAS, or a bug in ixemul.library, or a bug in ade-gcc.

Reported

by Ingo Saitz <ingo@r1.iqo.uni-hannover.de>

Volunteers
Difficulty
Status

Untested

Bug

tar -tzvf foo.tgz and gzcat foo.tgz | tar -tvf - do not work.

Work-around

Update to at least ADE version 960530 of tar.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.7 ls, cp, mv (fileutils)

Package: fileutils (see section fileutils).

Bug

ls, cp, mv etc. (fileutils) do not correctly handle Amiga-style pathnames

Description

ls -l ade:’ did not work, while ‘ls -l /ade’ did. To concatenate pathnames, UNIX programs either always insert an extra slash in between the parts or insert a slash only if a directory name is not already terminated by one. Both behaviours are incorrect on the Amiga, where ‘foo//bar’ is different from ‘foo/bar’ and no slash must be appended to device or volume names like ‘RAM:’. The rule is to only append a slash if a directory name is terminated by neither slash nor colon.

RAM:            RAM:foo
DEVS:DOSdrivers
SYS:Classes/    SYS:Classes/gadget
DEVS:/          DEVS:/Storage
Reported

by various (May 96)

Work-around

supply UNIX-style pathnames (‘/RAM/’, ‘/dev/PC0’) and have ixprefs’ "translate /" settings on.

Volunteers

you?

Difficulty

not difficult, just find all the places in all the sources

Status

still broken as of ADE release 970714

Bug

mv foo ram:’ (mv across partitions) deletes foo but nothing is in RAM:

Description

mv: cannot move `foo' to `ram:/foo': No such file or directory.
mv foo /ram/’ didn’t complain, but no file was found in /ram/ either.

5> list foo
foo                            5 ----rwed Today     21:56:53
1 file - 2 blocks
5> mv foo /workIII/
mv: cannot move `foo' to `/workIII//foo': File exists
5> ls /workIII/
  (no foo)
5> move foo text/
5> list text/foo
Directory "text" on Tuesday 09-Jul-96
foo                            5 ----rwed Today 
5> list workIII:info
Directory "workIII:info" on Tuesday 09-Jul-96
(..)
5> mv foo /workIII/info/
mv: cannot move `foo' to `/workIII/info//foo': Device not configured
Reported

by Lynn Winebarger <owinebar@nickel.ucs.indiana.edu> and Greg Jung <JUNG@ossen.nrl.navy.mil> (9-Jul-1996)

Volunteers

None

Difficulty
Status

[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.8 GDB — GNU Debugger

Bug

some info commands do not work

Description

info dcache gives Enforcer hits.
info float gives ‘No floating point info available for this processor.’ on my A4000/40, but info all-registers correctly shows FPU registers.

Reported

by Joerg.Hoehle@gmd.de (25-Aug-96)

Work-around
Volunteers
Difficulty
Status

[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.9 CVS — Concurrent Versions System

Bug

cvs commit’ gives cvs [commit aborted]: cannot commit files as 'root'

Description

checkout, update, remove, add are all possible, but not commit.

Should CVS be compiled without the CVS_BADROOT option, which refuses to allow root to commit, (see ‘commit.c’ in CVS source for details) to get it to work for non-networked users?

On the current Amiga, essentially everyone has root priviledges regardless of what user the networking support sets you up as, so I [Fred Fish] see no problem with disable the cvs feature that blocks root from doing some operations.

Furthermore, ‘cvs commit’ invokes an external editor to create a log message. However, it passes it a UNIX style path name, which isn’t grok’ed by my favorite editor.

Reported

by Diab Jerius <djerius@cfa.harvard.edu> 12-July-96

Work-around

Start up INet225 and turn on network support in ixemul.library, which sets you up as non-root. But then it’s said to cause tons of Enforcer hits.

Volunteers
Difficulty

looks like recompile

Status

on Fred Fish’s very long TODO list, so …


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.10 man — Read Manual Pages

Bug

man man’ doesn’t work, it says ‘cannot create’.

Description
please wait, formatting manual page `man'
/ade/man/cat1/man.0: cannot create

[Steve Kaye:] What it is trying to do is create ‘/ade/man/cat1/man.0’ from ‘/ade/man/man1/man.1’ (I think that is its name). This is then future access to the manual page ‘man’ will use the pre-formatted file. [Fred Fish:] I’m not sure why it is necessary, but it seems to be sufficient to assign MAN: to ADE:man for now. This needs to be looked into and fixed. [Rask I. Lambertsen:] It would also be nice if ‘man’ could figure out how to create the necessary ‘cat?’ directories if they don’t exist already. [Jörg Höhle:] But only if ‘man.conf’ switch says so.

Reported

by Lynn Winebarger <owinebar@nickel.ucs.indiana.edu> (10-Jul-96)

Work-around

Create ‘cat?’ directories or ‘Assign man: ADE:man/may help.

Volunteers
Difficulty
Status

on David Zaroski’s <cz253@cleveland.freenet.edu> TODO list

Bug

How to use Less or MultiView as man’s pager?

Description

If you get ‘WARNING: terminal cannot clear to end of line’ and others such messages, $TERMCAP must be set to the location of your termcap file (usually ‘ADE:etc/termcap’) for a UNIX-ported pager (more, less) to work.
If you get ‘sh: less: not found’, then $PAGER is not set correctly. Set the local variable, not the global (‘ENV:PAGER’) one. Using Set PAGER `Which MultiView` in the Amiga shell, before starting sh, should work.

Work-around
Reported

by Martin Steigerwald <steigerw@stud.uni-frankfurt.de> (26-Jul-96)


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4 How programs are packaged

binutils

ld (see section ld — GNU linker), as (see section as — GNU assembler).

CVS

cvs (see section CVS — Concurrent Versions System), ‘commit’, ‘update’ etc. are switches to the cvs program.

fileutils

ls, cp, mv (see section ls, cp, mv (fileutils)).

GCC

See section gcc — C front end, g++ — C++ front end, cpp — preprocessor, cc1 — actual C compiler.

tar

tar — Tape Archives.

pdksh

sh, ksh (see section sh/ksh — pdksh).

man

man — Read Manual Pages.

Libnix

Libnix — Using the ‘-noixemul’ option.

Testref: binutils2.
Testxref: See section binutils2.
Testpxref: (see section binutils2)


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5 General Index

Jump to:   -  
A   B   C   F   G   I   K   L   M   P   R   S   T   V  
Index Entry  Section

-
-fbaserel 3.2 GNU Assembler and Linker
-noixemul 3.5 Libnix — Using the ‘-noixemul’ option
-resident 3.2 GNU Assembler and Linker
-s 3.2.2 ld — GNU linker

A
as 3.2.1 as — GNU assembler

B
binutils 4 How programs are packaged

C
cc1 3.1.4 cc1 — actual C compiler
commit 3.9 CVS — Concurrent Versions System
cp 3.7 ls, cp, mv (fileutils)
cpp 3.1.3 cpp — preprocessor
CVS 3.9 CVS — Concurrent Versions System
cvs commit 3.9 CVS — Concurrent Versions System

F
fcntl 3.3 ixemul.library
fileutils 4 How programs are packaged

G
g++ 3.1.2 g++ — C++ front end
GCC 3.1 GNU C (C++, ObjC) Compiler
gcc 3.1.1 gcc — C front end
gdb 3.8 GDB — GNU Debugger
gzcat 3.6 tar — Tape Archives
gzip 3.6 tar — Tape Archives

I
inlines 3.1.4 cc1 — actual C compiler
ixemul.library 3.3 ixemul.library

K
ksh 3.4 sh/ksh — pdksh

L
ld 3.2.2 ld — GNU linker
less 3.10 man — Read Manual Pages
Libnix 3.5 Libnix — Using the ‘-noixemul’ option
ls 3.7 ls, cp, mv (fileutils)

M
man 3.10 man — Read Manual Pages
MultiView 3.10 man — Read Manual Pages
mv 3.7 ls, cp, mv (fileutils)

P
pdksh 3.4 sh/ksh — pdksh

R
RPM 3.3 ixemul.library

S
sh 3.4 sh/ksh — pdksh
spilled register 3.1.4 cc1 — actual C compiler

T
tar 3.6 tar — Tape Archives

V
varargs inline functions 3.1 GNU C (C++, ObjC) Compiler

Jump to:   -  
A   B   C   F   G   I   K   L   M   P   R   S   T   V  

[Top] [Contents] [Index] [ ? ]

About This Document

This document was generated on January 15, 2023 using texi2html 5.0.

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ << ] FastBack Beginning of this chapter or previous chapter 1
[ < ] Back Previous section in reading order 1.2.2
[ Up ] Up Up section 1.2
[ > ] Forward Next section in reading order 1.2.4
[ >> ] FastForward Next chapter 2
[Top] Top Cover (top) of document  
[Contents] Contents Table of contents  
[Index] Index Index  
[ ? ] About About (help)  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:


This document was generated on January 15, 2023 using texi2html 5.0.