For a long time, when cross-building, say from native=amd64 to
target=powerpc, it was necessary to:
1. cross-build a _powerpc_ package called cross-libtool-base-powerpc,
and then
2. install the powerpc package _natively_ with `pkg_add -m x86_64' to
override the architecture check that normally forbids this kind of
shenanigans,
in order to cross-build anything that uses libtool as a tool.
This is partly because libtool doesn't follow the normal GNU
convention of `./configure --build=<native platform> --host=<platform
package will run on> --target=<platform package is configured to
operate on>' -- in this example, build=amd64, host=amd64,
target=powerpc.
Instead, libtool expects to be cross-built itself, even if it's going
to run as a tool. It's not as bonkers as it sounds at first: libtool
is just a shell script, and it caches various information about the
(cross-building!) toolchain it is built with so it can use that
information later when it is run as a tool itself to cross-compile
other software.
To make this work, we need to create the toolchain wrappers for
libtool _as if_ we were cross-building even if we are building a
native package. So mk/tools uses a new flag TOOLS_USE_CROSS_COMPILE
instead of USE_CROSS_COMPILE, and libtool internally sets
MACHINE_ARCH=${TARGET_ARCH} (in the example above, powerpc) to make
it look like we're cross-building. The new TOOLS_CROSS_DESTDIR is an
alias for the (defaulted) CROSS_DESTDIR, which must now be set
unconditionally in mk.conf in order for libtool to know where the
cross-destdir will be; _CROSS_DESTDIR remains empty when building any
native packages (including the native cross-libtool package).
Finally, we need to make the resulting package be a native package,
with MACHINE_ARCH set to the one that it will be installed on (in the
example above, amd64), so I added an indirection _BUILD_DEFS.${var}
to replace var on its own in the build definitions that get baked
into the package, shown by `pkg_info -B'. Setting
_BUILD_DEFS.MACHINE_ARCH=${NATIVE_MACHINE_ARCH} ensures that this
mutant hybrid cross-built libtool still produces a native package.
All of this logic is gated on setting USE_CROSS_COMPILE in mk.conf or
LIBTOOL_CROSS_COMPILE in the package makefile, so it should be safe
for non-cross-builds -- when USE_CROSS_COMPILE=no and you're not
building cross-libtool, everything is as before.
knows about but are disabled by default, and are required to build
this package.
No PKGREVISION bump - if these build dependencies weren't there by chance
then avr-libc fails to build, so no effect on existing installations.
Version 6.4:
* Major changes compared to the previous version:
- libhidapi support (part of patch #8717)
- use libhidapi as (optional) transport for CMSIS-DAP compliant
debuggers (JTAGICE3 with firmware 3+, AtmelICE, EDBG, mEDBG)
- UPDI support added (AVR8X family)
- TPI support for USBtinyISP
- TPI support for ft245r
- TPI support for linuxgpio
- AVR Doper uses libhidapi rather than raw libusb (patch #9033)
- -P net:host:port can use IPv6 now (Posix systems only)
- New configure option: -disable-libusb_1_0
- extended UPDI device context (> 64 Ki flash)
- major overhaul of ft245r driver (patch #9327/#9328)
- some improvements in linuxspi driver
- Use -B <bitclock> rather than -b <baudrate> for linuxspi driver
- unused lock byte bits are not masked on read anymore
- parport support disabled by default; configure with
--enable-parport to explicitly enable it
* New devices supported:
- ATmega328PB
- AVR8X family, ATtiny1617, ATtiny817, ATtiny202, ATtiny204,
ATtiny402, ATtiny404, ATtiny406, ATtiny804, ATtiny806,
ATtiny807, ATtiny1604, ATtiny1606, ATtiny1607, ATtiny212,
ATtiny214, ATtiny412, ATTiny414, ATtiny416, ATtiny417,
ATtiny814, ATtiny816, ATtiny1614, ATtiny1616, ATtiny3214,
ATtiny3216, ATtiny3217, ATmega3208, ATmega3209, ATmega4808,
ATmega4809
- ATtiny841, ATtiny441
- ATmega64M1
- ATmega324A
- ATmega808, ATmega809, ATmega1608, ATmega1609, AVR DA, AVR DB
- LGT8FX88P, LGT8FX168P, LGT8FX328P
- ATmega324PB
- ATmega8A
* New programmers supported:
- ehajo-isp (commercial version of USBtiny)
- XplainedPro in UPDI mode
- XplainedMini in UPDI mode
- JTAGICE3 in UPDI mode
- Atmel Powerdebugger in all modes (JTAG, PDI, UPDI, debugWIRE, ISP)
- linuxspi (direct SPI bus e.g. on Raspberry Pi devices)
- PICkit4, Snap, PKoB
- iseavrprog
- XBeeBoot
* Bugfixes:
bug #47550: Linux GPIO broken
bug #47718: "lfuse reads as" not displayed in verbose mode - SOLUTION
bug #48084: Avoid compiled-in timestamp for reproducible release builds
bug #47376: ATtiny841 description missing in configuration file
bug #49455: support for tiny441
bug #57428: document when 'arduino' or 'wiring' should be used, and -D requirement of latter
bug #58095: error setting efuse on atmega328pb variant
bug #51409: Can't program EFUSE on ATmega32M1
bug #60753: Patch #1436 breaks multiple programmer/device combinations on MacOS BigSur
bug #59525: Bogus error message because Copy/Paste typo in stk500.c
bug #58078: [PATCH] buspirate: remove compound literals (fixes GCC>=9)
bug #57453: [PATCH] fix reference to nonexistant -m option by changing to -U
bug #59227: Add new part. How does one get a part added to the CONF file?
bug #55009: no efuses for m164a/pa
bug #55734: USBtiny programming of ATmega328p broken by Patch #9278
bug #58495: Add atmega324pb support to avrdude.conf.in
bug #60863: avrftdi programming error probably caused by multiple, consecutive empty pages
bug #50517: Reading fails if "immediate mode" for output file format is selected - fileio: invalid operation=1
bug #50630: Erase Cycle Counter options ( -y -Y n ) should be removed from usage Message
bug #48767: ser_drain() for TCP on Windows doesn't work
bug #46759: avrdude 6.1 -> 6.2 regression: lock byte verification error
bug #58440: linuxgpio PIN limit too low
bug #55462: wrong programmer id check in jtag3_getsync() and jtag3_close()
bug #58994: VPP PWM still enabled at the end of programming process
bug #57338: if safemode has to change fuses avrdude should exit with non-zero exit code
bug #60575: Permission denied on macOS Big Sur
* Patches:
patch #9482: Add support for UPDI and AVR8X
patch #9508: Add PowerDebugger and XPlained Mini in UPDI mode
patch #9507: Fix UPDI chip erase
patch #9506: Script to create device configuration stub from Atmel
ATDF files
patch #9423: Support ATtiny841 and ATtiny441
patch #9530: Update URL to Ladyada's USBtinyISP page.
patch #9317: Support atmega64m1 as part
patch #9222: Enable silent build
patch #8924: Enable TPI for usbtiny
patch #9033: avrdoper backend uses libhidapi instead of libusb
patch #8580: FT245r support to select device by serial number
patch #8910: ATxmega32c4 and ATxmega16c4 have wrong signatures
patch #8219: Fix boot_start for xmega devices on jtagmkII
patch #9185: Add extended_param to usbasp.c - erasing
patch #8311: Add IPv6 support to the -Pnet:host:port option
patch #9542: Correct "usersig" on avr8x devices
patch #8128: Added new option to configure.ac script
patch #8444: Proposal for modifications in -B and -U command options managment (partially)
patch #9735: spelling error fix: psuedo -> pseudo
patch #9893: [PATCH] Reader reads ftdi handle after main thread close it
patch #9819: Address several leaks in SVN rev 1429
patch #9820: Fix some out-of-bounds/uninitialized issues
patch #9818: correct typos in SVN rev 1429
patch #9732: usbtiny_paged_load overflows buffer e.g. when reading EEPROM
patch #9966: Add JTAGICE3 in UPDI mode
patch #9963: UsbAsp 3 MHz patch for UsbAsp-flash firmware
patch #9816: Implement new programmer type: linuxspi
patch #9811: ATmega328pb has efuse bit 3
patch #9744: Patch for ATMega324A support
patch #10000: Add support for extended UPDI device context
patch #9697: Add iseavrprog support
patch #10017: uspasp / tpi: Automatically clear configuration byte (fuse) before writing it
patch #8957: Allow reading prodsig memory from stk500v2 on xmega devices
patch #9110: Let reserved fuse bits to be read as *don't care*
patch #9253: Fix for giving terminal_mode commands more than 20 arguments
patch #9320: fix TPI RESET in bitbang.c
patch #9079: Fix ftdi_syncbb teardown (supersedes #9893, superseded by #9328)
patch #9122: Fixed MISO sampling in ftdi_syncbb
patch #9123: ftdi_syncbb: use FT245R_CYCLES in ft245r_set_bitclock()
patch #8719: Support Over-the-Air bootloading with XBeeBoot
patch #9757: Fix ATtiny817 Xplained Mini programmer
patch #9327: ft245r.c: add TPI support (patches 1-4)
patch #9328: ft245r.c: add TPI support (patches 5-7)
patch #10027: linuxspi: Add reset pulse, according to AVR programming algorithm
patch #10028: linuxspi: close() only when necessary
patch #10029: linuxspi: Report GPIO_GET_LINEHANDLE_IOCTL errors
patch #10030: linuxspi: Support inverted GPIO pin
patch #10031: linuxspi: Support GPIO uAPI v2
(no-id): Improve documentation of linuxspi driver, provide portname default
(no-id): Use -B <bitclock> rather than -b <baudrate> for linuxspi driver
patch #9304: [Bug #48767] Implemented WinSock variation of "ser_drain(...)" functionality
patch #8996: Remove lock byte read mask (bug#21954, bug#46759)
patch #8923: Enable TPI for linuxgpio
patch #10153: linuxspi: Support "-E reset" and "-E noreset"
* Internals:
- New avrdude.conf keyword "family_id", used to verify SIB attributes
on AVR8X architecture if device is locked.
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
The following distfiles could not be fetched (some may be fetched
conditionally):
./cross/avr-gcc/distinfo isl-0.24.tar.bz2
- The problem is:
--- all-ld ---
.././ld/genscripts.sh: 411: Syntax error: Bad substitution
*** [ei386pe.c] Error code 2
- patch-ld_genscripts.sh seems addressing this issue, but does not seem
working correctly
- So, there may be better solution, but sorry for adhoc fix (as usual)
Deleting the unwanted libcc1 after installation failed on some OS (because
they use non-standard paths for the library directory). The configure option
"--disable-libcc1" is now used instead.
Bump PKGREVISION because this change removes 2 plugins from the PLIST too.
Mention the C++ compiler in DESCR again.
* Update binutils to 2.37.
* Update gcc to 10.3.0.
Changelog:
Notable changes:
UCRT updates by Biswapriyo Nath
Wine updates by Jacek Caban
Various new and updated API headers by Biswapriyo Nath and Liu Hao
Various UCRT and MSVCRT fixes by Martin Storsjo
at_quick_exit implementation by Martin Storsjo
dism API by Biswapriyo Nath
idl fixes by Steve Lhomme
Winpthreads fixes by Liu Hao
gettimeofday precision increase by Christian Franke
Pkgsrc changes:
- Regenerate Makefile patch
- Remove patch for GCC 2.95 introduced in 2004
ChangeLog:
September 21, 2011 version 1.07
- Introduced .BANKNUM operator
- Allow .SET 6 to forward reference labels
- Allow leading underscores in label names
- Fixed an error with command-line defines
- Allow character quoting of spaces and semicolons
- Allow comments to start without a preceding space
- Fixed local label references inside of macros or macro parameters
May 26, 2014 version 1.08
- Initial support of list files with -g command-line parameter
- Allow .INCBIN to honor include paths
- Missing state files no longer segfault
- Double-forward defines now throw an error rather than silently generate
bad code
March 20, 2021 version 1.09
- Fixed a problem with filename creation when saving output to an ATR image
- Fixed CVE-2019-19785: Stack-based buffer overflow in to_comma()
- Fixed CVE-2019-19786: Stack-based buffer overflow in parse_expr()
- Fixed CVE-2019-19787: Stack-based buffer overflow in get_signed_expression()
Björn Esser (5):
Replace GIT_SHA with a more versatile BUILD_ID definition.
test/ref/otccex: Fix ramdomly occurring segfault.
util/zlib/deflater: Fix several compiler warnings.
zlib: Use correct (un)signedness of char in prototypes and functions.
src/Makefile: Simplify BUILD_ID logic.
Chris Cacciatore (2):
Added support for --large-alignment in ld65.
Removed invalid link to ca65 document.
Curt J. Sampson (2):
libsrc/*/kplot.s: Use cbm_kernal.inc symbols, not hardcoded addrs
vic20/cputc: Fix incorrect CRAM_PTR at startup when using conio
Daniel Serpell (1):
Fixes Atari OS devhdl_t, init field needs an JMP byte.
Dirk Jagdmann (2):
fix whitespace
fix the clean: target to remove any disk images.
Fabrizio Caruso (23):
Fix Gamate RVS
Hello world example for the Supervision
Move screen init into crt0.s
Improve init code readability
Improve helloworld example for Supervision
Add supervisionhello in samples/Makefile
Use decimal for lcd size initialization
Comments
Improve comments
Init is no longer in crt0.s
Fix char 35 38 42 47 52
Fix 4
M N fixed
Fix left arrow (char 77=13+64)
Fix 127 (second left arrow)
small m and n fixed
Tentative solution for cgetc in Lynx
Remove useless tax
remove bra
Second tentative fix
stz
kbhit checks KBEDG and getc resets KBEDG
Optimizations
Greg King (38):
Made the ld65 configure file's segment offset attribute accept zero as a value.
Changed empty parameter lists into (void) lists on functions with asm() statements.
Allowed old-style (K and R) function declarations to be fastcall.
Added a charmap header that converts no character encodings.
Added a .ORG keyword to ca65 structs/unions.
Created a target and a library for the Commander X16 prototype computer.
Updated the cx16 start-up to the emulator's release 32.
Put the C64 code into cx16/_scrsize.s.
Fixed a typo in the cx16 document.
Added character codes to change between the two CBM fonts.
Fixed cgetc().
Made the "none" CPU allow all address sizes.
Added new program descriptions to the list.
Fixed problems with the Atari Lynx's TGI driver.
Fixed error handling for missing names in ld65 configure files.
Added the GIF switch to the X16 emulator's control port.
Added VERA peek() and poke() to the cx16 library.
Made assert() send SIGABRT when an assertion fails.
Changed a "See also" link in the abort() and assert() descriptions from raise() to signal().
Updated cx16 to match the Commander X16 ROMs and emulator, release 34.
Added a standard mouse driver to the cx16 library.
Added <cx16.h> to the function reference document.
Changed sim65's internal error codes from 9-bit values to 7-bit values.
Added the missing BANK_RAM array to the Commander X16's header.
Updated the cx16 library to the Commander X16 Kernal's prerelease 35.
Made the program-chaining exec() handle the X16 emulator's file-system.
Added real-time clock functions to the cx16 library.
Fixed the target guards around the usage messages.
Made ca65 give error messages when it sees duplicate .define commands.
Updated the cx16 library to the ROM's prerelease 36.
Made cc65 detect a possibly missing argument at the end of a function argument list.
Fixed a typo in commit 2e5fbe89cd3f67b06b292936dfdf4fdb104b7112.
Fixed an error message printer.
Added missing <tag> and <itemize> Linuxdoc tags to some ctype.h function descriptions.
Updated the cx16 library to the Commander X16's ROM prerelease 37.
Fixed some typos in the "large alignment" support.
Added a JOY_FIRE() macro to the Atmos and Telestrat C headers.
Put the Telestrat static drivers names together.
IrgendwerA8 (3):
ctype size optimization
Changes resulting from code review.
Changes resulting from 2nd code review
Jeff Tranter (1):
New OSI input routine based on disassembly of ROM code.
Jeremy Chadwick (3):
doc: clarify need for .IMPORT on some special symbols
Grammatical modifications
Use the word 'macros' universally (not macroes)
Jeremy Rand (1):
Update get_ostype.s
LRFLEW (3):
Significantly faster rand() implementation
Update comments in rand.s
[cx16] Update ROM banks to new mapping
Lauri Kasanen (3):
cc65: Add support for binary literals
binlit: Add a few random leading zeros
Document binary literals
Oliver Schmidt (15):
Reduced shadow for h2 to improve readability.
Minor URL update.
Use MACHID to check for realtime clock.
Expanded Sim65 zero page.
Minor cleanup.
Normalized Atari naming.
Made use of 65C02 opcode (thx to polluks).
Adjusted comments due to recent change.
Matched comment to the one in the C header file.
Some style adjustments.
Adjusted tolower() and toupper() to https://github.com/cc65/cc65/pull/997
Fixed tolower() and toupper() to save high byte.
Shortened names and adjusted style.
Disable potentially enabled double-width graphics.
Removed --lib option from cl65.
Piotr Fusik (4):
Optimize a negation in signed division.
Don't set carry when already set.
Swap the positive/negative paths to save a branch.
Optimize sign extension.
Richard Halkyard (1):
Reformat comments to style guide rules
Stefan (23):
Fix colors for #948
Fixed typos
Fixed exit code #974
Fixed C16 #978
Update c16.sgml
Update c128.sgml
Update c64.sgml
Update cbm510.sgml
Update cx16.sgml
Update funcref.sgml
Update nes.sgml
Update pce.sgml
Update plus4.sgml
Update vic20.sgml
Update color.s
Update conio.s
Update cputc.s
Update fast.s
Update isfast.s
Update revers.s
Update slow.s
Update status.s
Preserve the accu
Stephan Mühlstrasser (5):
Restructured according to review
Remove obsolete comment
Remove source file that was only used for testing
Address review comments
Removed redundant LDA
acqn (4):
Corrected check in OptTransfers2 for register usage. Fixed Issue 992.
Always insert a LDA after the removed PLA during the optimization in OptPushPop. Fixed Issue 971.
Quick fix for the OptPushPop bug reported in Issue #337.
Just disable OptPushPop if N/Z is used after the PLA. This is a more conservative way to fix Issue #971.
bbbradsmith (4):
sim65 common define for paravirt hooks base location allows the loaded binary to take up as much space as possible restored some documentation of the hooks but without reference to specific location
Fix silent crash failure on warning from linker command line define import size mismatch
make linker generated export warning conistent with the import warning
SEGMENT start of 0 should be valid
greg-king5 (1):
Aligned comment.
itaych (1):
PMG_SIZE_QUAD is 3, not 2.
jede (28):
Add page 0 variables from Telemon 2.4
Add XSCROH & XSCROB value
Fix bug : gotoxy does not working because Y does not update the adress on the screen
Add textcolor and bgcolor.s
Fix gotoy changecolor
fix typo
fix import
Fix typo and optimize
Fix label, optimize code
Fix bug with bgcolor and textcolor
jmp instead of jsr
Fix bgcolor and textcolor must return last color, jmp remove.
Optimize Clrscr
Cleaning import variables
Fix comment and gotox force colour change
Fix bug $FF
Add cclear and cclearxy
Cleaning
Fix bug in tgi_line : HRS(X) parameters are 16 bits.
Fix 16 bits values
Telestrat joystick management
Fix typo
Fix typo
Fix typo
Fix bug
Change name of the driver (telestrat-joy.s renamed to telestrat.s
Fix eor bug
Fixed the name of the driver
laubzega (2):
Fix for #928.
Minor formatting changes after review.
marko.lauke (2):
+cc65 inline asm stp mnemonic support
+code style
mc78 (11):
Replaced plain 0's and 1's in exit statements with EXIT_SUCCESS or EXIT_FAILURE
Added enum for cc65 exit codes. replaced stdlib exit code names constants in libsrc with cc65 exit code named constants
Added comment to debugger exit with error
Replaced enum in cc65.h by defines. added comment that cc65 exit constants should not redefine 0 and 1 as they are reserved for exit_success and exit_failure
Removed CC65_ prefixes from exit statements in abort and assert code as well from definition
Removed additional exit constants definitions from cc65.h to stdlih.h. Guarded the definitions by #ifdef. Removed cc65.h includes from abort and assert implementations.
added additional empty line after header guard in cc65.h to conform to other headers
Removed unnecessary #include <cc65.h> from convert.c Adjusted block comments to predominant style
Changes in INSTALL routine from emd/c128-vdc.s. tmp1 was used at two places resulting in the bug that VDC_CSET was set to garbage on 16k VDC. pagecount and curpage were not reset on INSTALL resulting in non-reentrant code on static linkage of emd driver.
Added reservation of second byte for pagecount
Changed the order in which lo/hi bytes of vdc addr are set according to willimanilys ((z64k) suggestions. Changed offset for vdc ramsize detection from 000 to 000.
mrdudz (2):
added regression test related to bug #1001
store y first, then a. fix by willymanilly
ChangeLog:
DASM version 2.20.14.1:
* fixed support for forced word address x/y indexed (.wx / .wy)
* man page added
* missing opcodes added for mc68hc908 controller
* Support for older macOS versions (OSX 10.5 and up)
DASM version 2.20.14:
* Technical Documentation / User Guide for dasm in PDF format,
written by Andrew Davie in his engaging style.
* Dynamic Labels support by concatenating evaluated values
* Multiline C style /* */ comments
* Support for mc68hc908 controller family
* Cleaned up and improved Unit Tests
* new switch -R to remove output file if dasm found an
error during assembly
* Small optimization in the Atari 2600 CLEAN_START macro
* SETSTR expression; typically used within a macro to use
the name of an argument
* Update GCC to 10.2.0.
* Update Binutils to 2.35.1
Changelog:
v8.0.0: 2020-09-18
Notable changes:
New Hyper-V headers and libraries by Biswapriyo Nath
Many headers updated from Wine by Jacek Caban.
ARM math improvements by Martin Storsjo
floating point fixes by Liu Hao
many *printf compatibility fixes by Liu Hao and Martin Storsjo
massive Windows App Store API updates by Steve Lhomme
winstorecompat library updates by Martin Storsjo
__USE_MINGW_ANSI_STDIO now automatically enabled in C99 and C11 mode when not using UCRT by Pali Rohar
wdm and ddk updates by Zebediah Figura
UCRT for Windows Store Apps (-lucrtapp) by Martin Storsjo
Audioclient and ActivateAudioInterfaceAsync API updates by Liu Hao
DirectX SDKs are now always installed
This is version 2.20.13 of DASM. It is mainly a bugfix release.
Short summary of fixes:
Longstring segfault fix
Fix for non-symbol-compliant unquoted filenames
Address expression fix
Makefile portability fixes
Added atari 7800 header files
Allow labels to shift between multiple passes
Fix for silenced single pass non-abort errors
Adjust .byte and .word negative range check
Duplicate macro fix
Reduce gcc Wall option build warnings
Added 'strict' syntax check mode (+ added to docs)
Enable .word size check for strict-mode only
Dynamic buffers for pass-output update
Console-specific header files and common macros are included for:
Atari 2600 VCS
Atari 7800 (new!!)
Fairchild Channel F VES
This is version 2.20.12 of DASM.
Short summary of most important fixes/changes:
Fix for handling linux linefeeds under Windows
Fix for segfault on long lines
Supports using constants for include files