Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

#1280 closed defect (fixed)

GCC ICE compiling shttpd/log.c on Coldfire

Reported by: Joel Sherrill Owned by: Ralf Corsepius
Priority: normal Milestone: 4.8
Component: tool Version: unknown
Severity: normal Keywords:
Cc: Blocked By:
Blocking:

Description

This is a known bug in gcc 4.2 and older. It is fixed in 4.3 and newer but will probably never be fixed in 4.2.x.

The RTEMS problem is that we had a work around which was too tight on checking gcc versions. I will be attaching an RTEMS patch which reenables the work around for all gcc 4.2.x and older.

m68k-rtems4.8-gcc --pipe -m5200 --pipe -DHAVE_CONFIG_H -I.. -I../../../lib/include -DHAVE_MD5 -Dcheck_authorization=_shttpd_check_authorization -Ddecode_url_encoded_string=_shttpd_decode_url_encoded_string -Dedit_passwords=_shttpd_edit_passwords -Delog=_shttpd_elog -Dget_dir=_shttpd_get_dir -Dget_file=_shttpd_get_file -Dget_headers_len=_shttpd_get_headers_len -Dget_mime_type=_shttpd_get_mime_type -Dinit_from_argc_argv=_shttpd_init_from_argc_argv -Dis_authorized_for_put=_shttpd_is_authorized_for_put -Dis_registered_uri=_shttpd_is_registered_uri -Dlog_access=_shttpd_log_access -Dparse_headers=_shttpd_parse_headers -Dput_dir=_shttpd_put_dir -Dsend_authorization_request=_shttpd_send_authorization_request -Dsend_server_error=_shttpd_send_server_error -Dset_close_on_exec=_shttpd_set_close_on_exec -Dset_mime_types=_shttpd_set_mime_types -Dset_non_blocking_mode=_shttpd_set_non_blocking_mode -Dsetup_embedded_stream=_shttpd_setup_embedded_stream -Dstop_stream=_shttpd_stop_stream -Dusage=_shttpd_usage -Dknown_http_methods=_shttpd_known_http_methods -Doptions=_shttpd_options -Dio_file=_shttpd_io_file -Dio_socket=_shttpd_io_socket -Dio_embedded=_shttpd_io_embedded -Dio_dir=_shttpd_io_dir -Dio_cgi=_shttpd_io_cgi -Dcurrent_time=_shttpd_current_time -Dtz_offset=_shttpd_tz_offset -Wall -fasm -g -O2 -m5200 -MT libshttpd_a-log.o -MD -MP -MF .deps/libshttpd_a-log.Tpo -c -o libshttpd_a-log.o test -f 'log.c' || echo '../../../../../current/cpukit/shttpd/'log.c
../../../../../current/cpukit/shttpd/log.c: In function '_shttpd_log_access':
../../../../../current/cpukit/shttpd/log.c:139: error: insn does not satisfy its constraints:
(insn 74 158 159 10 ../../../../../current/cpukit/shttpd/log.c:117 (set (mem/c:SI (plus:SI (reg/f:SI 14 %a6)

(reg:SI 1 %d1)) [57 D.7273+0 S4 A16])

(mem/s:SI (plus:SI (reg/v/f:SI 10 %a2 [orig:48 c ] [48])

(const_int 220 [0xdc])) [8 <variable>.loc.io.total+0 S4 A16])) 34 {*movsi_cf} (nil)

(nil))

../../../../../current/cpukit/shttpd/log.c:139: internal compiler error: in reload_cse_simplify_operands, at postreload.c:392

Attachments (1)

shttpd.diff (995 bytes) - added by Joel Sherrill on 03/07/08 at 17:57:47.
broaden the gcc versions which enable the workaround

Download all attachments as: .zip

Change History (2)

Changed on 03/07/08 at 17:57:47 by Joel Sherrill

Attachment: shttpd.diff added

broaden the gcc versions which enable the workaround

comment:1 Changed on 03/07/08 at 17:59:01 by Joel Sherrill

Resolution: fixed
Status: newclosed

Patch committed to 4.8 branch

Note: See TracTickets for help on using tickets.