Accepting request 1248419 from devel:gcc

- update to 2.2.1
  * General:
    - Project moved to Github
    - Support for many new devices has been added, like devices from the
      AVR 0-series, 1-series, 2-series, AVR-Dx and AVR-Ex, but also for
      some older devices.
    - Parts of the user manual have been reworked, like the inline assembly
      Cookbook and the documentation of memory sections.
    - The multilib layout of the library, and what device belongs to which
      multilib variant, is no more hard coded in AVR-LibC but follows the
      compiler's multilib layout.
  * Improvements and additions:
    - Add support to new multilib layout / 64-bit [long] double compiler
      (Issues #642, #670)
    - Added support for new devices (Issue #824):
      ATtiny202 ATtiny204 ATtiny212 ATtiny214 ATtiny402 ATtiny404
      ATtiny406 ATtiny412 ATtiny414 ATtiny416 ATtiny417 ATtiny424
      ATtiny426 ATtiny427 ATtiny804 ATtiny806 ATtiny807 ATtiny814
      ATtiny816 ATtiny817 ATtiny824 ATtiny826 ATtiny827 ATtiny1604
      ATtiny1606 ATtiny1607 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny1624
      ATtiny1626 ATtiny1627 ATtiny3214 ATtiny3216 ATtiny3217 ATtiny3224
      ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609
      ATmega3208 ATmega3209 ATmega4808 ATmega4809
    - Added support for AVR-Dx devices (Issue #881):
      AVR16DD14 AVR16DD20 AVR16DD28 AVR16DD32 AVR32DA28 AVR32DA32
      AVR32DA48 AVR32DB28 AVR32DB32 AVR32DB48 AVR32DD14 AVR32DD20
      AVR32DD28 AVR32DD32 AVR64DA28 AVR64DA32 AVR64DA48 AVR64DA64
      AVR64DB28 AVR64DB32 AVR64DB48 AVR64DB64 AVR64DD14 AVR64DD20
      AVR64DD28 AVR64DD32 AVR128DA28 AVR128DA32 AVR128DA48 AVR128DA64
      AVR128DB28 AVR128DB32 AVR128DB48 AVR128DB64

OBS-URL: https://build.opensuse.org/request/show/1248419
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/avr-libc?expand=0&rev=3
This commit is contained in:
Dominique Leuenberger 2025-02-26 16:15:47 +00:00 committed by Git OBS Bridge
commit 9f298961fd
16 changed files with 5974 additions and 35 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
From 35dbb37b93f830d52819c881f5a64c0cd68b4d14 Mon Sep 17 00:00:00 2001
From: Georg-Johann Lay <avr@gjlay.de>
Date: Fri, 21 Feb 2025 18:37:25 +0100
Subject: [PATCH 2/3] dox_latex_header.tex: Add to EXTRA_DIST #969 #1023
---
doc/api/Makefile.am | 1 +
1 file changed, 1 insertion(+)
diff --git a/doc/api/Makefile.am b/doc/api/Makefile.am
index 41066fb8..fa1f23b5 100644
--- a/doc/api/Makefile.am
+++ b/doc/api/Makefile.am
@@ -38,6 +38,7 @@ CLEANFILES = *.html *.pdf *.ma *.mas \
doxygen.config main_page.dox doxygen-pdf.config
EXTRA_DIST = dox.css dox_html_header dox_html_footer \
+ dox_latex_header.tex \
doxygen.config.in \
main_page.dox.in \
assembler.dox \
--
2.43.0

View File

@ -0,0 +1,33 @@
From 544990952e25d6eed6b504320a62d0533b22a1f3 Mon Sep 17 00:00:00 2001
From: Georg-Johann Lay <avr@gjlay.de>
Date: Fri, 21 Feb 2025 19:04:42 +0100
Subject: [PATCH 3/3] dox/api/Makefile.am (EXTRA_DIST): Add filter-dox.sh,
avr-libc-logo-large.png #969 #1023
---
doc/api/Makefile.am | 2 ++
1 file changed, 2 insertions(+)
diff --git a/doc/api/Makefile.am b/doc/api/Makefile.am
index fa1f23b5..81459c45 100644
--- a/doc/api/Makefile.am
+++ b/doc/api/Makefile.am
@@ -47,6 +47,7 @@ EXTRA_DIST = dox.css dox_html_header dox_html_footer \
acknowledge.dox \
malloc.dox \
$(IMAGE_SRC) \
+ avr-libc-logo-large.png \
sections.dox \
sfr.dox \
tools-install.dox \
@@ -61,6 +62,7 @@ EXTRA_DIST = dox.css dox_html_header dox_html_footer \
overview.dox \
pgmspace.dox \
library.dox \
+ filter-dox.sh \
gen-vectortable-dox.sh \
isrs-to-dox.py \
mcus-to-isrs.sh \
--
2.43.0

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0b84cee5c08b5d5cba67c36125e5aaa85251bc9accfba5773bfa87bc34b654e8
size 3638672

Binary file not shown.

3
avr-libc-2.2.1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:006a6306cbbc938c3bdb583ac54f93fe7d7c8cf97f9cde91f91c6fb0273ab465
size 8404725

BIN
avr-libc-2.2.1.tar.bz2.sig Normal file

Binary file not shown.

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0af6bf62a4452268cd9588da9e9cc1414d0e7febf3f5ce09c8187426e019717e
size 149031

Binary file not shown.

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f0093ee969dee317f4ee6f10be97a78529a1175df400aada256e465c4511f1f8
size 1684416

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5e2e7906bd72c3b6acd8bea4d8d68880fe896807a31fdf4ae009cf83dd4397fe
size 951304

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a77fc4ce98bd5caa12de762e83a1546d98ded56aa7cb4f33192d4e2be0e25ab9
size 2341274

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9c48141035badcbbe48b21cb4fdcb7e5d78698f84e1e2fed7b9e342e978c4376
size 1071673

View File

@ -1,3 +1,153 @@
-------------------------------------------------------------------
Fri Feb 21 10:54:54 UTC 2025 - Matwey Kornilov <matwey.kornilov@gmail.com>
- update to 2.2.1
* General:
- Project moved to Github
- Support for many new devices has been added, like devices from the
AVR 0-series, 1-series, 2-series, AVR-Dx and AVR-Ex, but also for
some older devices.
- Parts of the user manual have been reworked, like the inline assembly
Cookbook and the documentation of memory sections.
- The multilib layout of the library, and what device belongs to which
multilib variant, is no more hard coded in AVR-LibC but follows the
compiler's multilib layout.
* Improvements and additions:
- Add support to new multilib layout / 64-bit [long] double compiler
(Issues #642, #670)
- Added support for new devices (Issue #824):
ATtiny202 ATtiny204 ATtiny212 ATtiny214 ATtiny402 ATtiny404
ATtiny406 ATtiny412 ATtiny414 ATtiny416 ATtiny417 ATtiny424
ATtiny426 ATtiny427 ATtiny804 ATtiny806 ATtiny807 ATtiny814
ATtiny816 ATtiny817 ATtiny824 ATtiny826 ATtiny827 ATtiny1604
ATtiny1606 ATtiny1607 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny1624
ATtiny1626 ATtiny1627 ATtiny3214 ATtiny3216 ATtiny3217 ATtiny3224
ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609
ATmega3208 ATmega3209 ATmega4808 ATmega4809
- Added support for AVR-Dx devices (Issue #881):
AVR16DD14 AVR16DD20 AVR16DD28 AVR16DD32 AVR32DA28 AVR32DA32
AVR32DA48 AVR32DB28 AVR32DB32 AVR32DB48 AVR32DD14 AVR32DD20
AVR32DD28 AVR32DD32 AVR64DA28 AVR64DA32 AVR64DA48 AVR64DA64
AVR64DB28 AVR64DB32 AVR64DB48 AVR64DB64 AVR64DD14 AVR64DD20
AVR64DD28 AVR64DD32 AVR128DA28 AVR128DA32 AVR128DA48 AVR128DA64
AVR128DB28 AVR128DB32 AVR128DB48 AVR128DB64
AVR64DU28 AVR64DU32
- Added support for AVR-Ex devices:
AVR16EA28 AVR16EA32 AVR16EA48 AVR16EB14 AVR16EB20 AVR16EB28 AVR16EB32
AVR32EA28 AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 AVR64EA48
- Added support for Reduced Tiny devices:
ATiny102 ATtiny104
- Added support for Classic devices:
ATmega168PB ATmega328PB ATmega324PB
- Added a new module to lib<mcu>.a that can be used as part of the
startup code by the compiler. The compiler will link the code when
a device from the AVR-Dx or AVR-Ex families uses a non-default layout
of NVMCTRL_CTRLB.FLMAP (Issue #931, Binutils PR31124, GCC PR112944).
For more details on the feature see the GCC v14 release notes at
https://gcc.gnu.org/gcc-14/changes.html#avr
- Added support for: strndup.
- Added support for: PROGMEM_FAR, PSTR_FAR, strchr_PF.
- Added support for ccp_write_spm() in avr/cpufunc.h
- The delay routines no more include math.h but use built-in functions
__builtin_fabs and __builtin_ceil instead of fabs and ceil. This means
the delay routines are now independent of -f[no-]freestanding (Issue 580).
- Added macros pgm_read_qword, pgm_read_qword_near, pgm_read_qword_far.
- Added inline functions to read from progmem that return a type as
indicated by the function name, like char pgm_read_char (const char*).
The functions adjust to -mint8, -mdouble= and -mlong-double=.
Functions for fixed-width types are pgm_read_i64, pgm_read_u24, etc.
* Functions that read from beyond 64 KiB are suffixed _far and take
an uint_farptr_t as argument.
* pgm_read_float has been turned from a macro that takes uint16_t to
an inline function that takes const float*.
* pgm_read_byte, pgm_read_word and pgm_read_dword remain as they were
and still take an uint16_t argument for compatibility and legacy code.
- Added experimental templates pgm_read<> and pgm_read_far<>. They are
only available when macro __pgm_read_template__ is defined.
- Added EEPROM support for: double, long double, uint64_t (*_qword).
- AVR-LibC does not use section .progmem.* any more for lookup tables and
string literals. Instead, .progmemx.* is used which does not require
that the data resides in the lower 64 KiB of program memory.
This means that on devices with more than 64 KiB of program memory,
the ELPM instruction is used to read the data where formerly it was LPM.
Hence code size and execution times on such devices will slightly
increase for functions from the printf and scanf families, and for libm
functions that use power series. (Issue #962).
Notice that only since Binutils v2.29 (PR21849), section .progmemx is
located after the .text sections.
- The startup code now defines symbols like __DATA_REGION__LENGTH__ and
__DATA_REGION_ORIGIN__ according to the memories of the used AVR device
(Issue #936). These symbols are used by the default linker scripts to
diagnose when the text or data region overflows.
To date, only a core specific default value was used, but the devices
that belong to the same core architecture have different memory sizes.
- The pgm_read_* and pgm_read_*_far macros and functions now also work for
the Reduced Tiny devices. (Issue #563). The implementation assumes that
GCC implements PR71948 which was added in v7. Notice that on Reduced Tiny:
* There is no need for PROGEMM at all because all const objects in static
storage are located in program memory since Binutils v2.27 (PR20849).
* Even when PROGMEM is used, no pgm_read functions or macros are required.
See the GCC documentation on the __progmem__ attribute for Reduced Tiny.
* Issues closed:
- [patch #9543] Add avrxmega3 devices. #824
- [bug #49567] Use meta-info from --print-multi-lib and
--print-multi-directory #642
- [bug #57071] Fix math.h and function names that block 64-bit
double #670
- Issue #476 [bug #32945] RAMPZ clobbered in far-pointer library.
Functions from the far-pointer library in libc/pmstring like
memcpy_PF that read from program memory using ELPM must set
RAMPZ to the high byte of the 24-bit address. On devices that
don't use RAMPZ exclusively with ELPM, RAMPZ has to be reset when
the function is finished. These are devices with an EBI (External
Bus Interface): ATxmega64A1, ATxmega64A1U, ATxmega128A1,
ATxmega128A1U, ATxmega128A4U.
- Add device support to avr/power.h for:
ATtiny441 ATtiny841
- FDEV_SETUP_STREAM from stdio.h now works with C++ (Issue #898)
- More than 80, mostly historic issues have been closed -- too many
to mention all of them here
- Fixed wrong prototypes of frexp, frexpf, frexpl in math.h (Issue #929)
- time.h: function mktime() is off by 1h when [EU] DST is active (Issue #967)
* Pull requests:
- Logo [#969]
- Documentation fixes [#968]
- Issue #962 - libm: Use ELPM for tables on ELPM devices. [#964]
- Issue #934: Fix EEPROM write issue on AVR-Ex and AVR-Dx family [#948]
- Add code to initialize NVMCTRL_CTRLB.FLMAP in new module flmap-init.S enhancement [#947]
- Add AVR-Ex devices enhancement [#946]
- Issue 940 runtest [#941]
- include/avr/io*.h: Update I/O header files enhancement [#938]
- Issue #936: Provide symbols for exact memory layout. enhancement [#937]
- Issue #931: Initialize NVMCTRL_CTRLB.FLMAP for Devices that have it. enhancement [#935]
- Issue #931: Initialize NVMCTRL_CTRLB.FLMAP for Devices that have it. [#933]
- Issue 929: Remove __ATTR_CONST__ from frexp* protoypes in math.h. [#932]
- #890 #884: Fix / add entries for ATmega808/9, ATmega1608/9, ATmega3… [#927]
- #921: Use all h files of $srcdir/include/avr in Makefile.am. enhancement [#925]
- #892: configure.ac has outdated CHECK_AVR_DEVICE and AM_CONDITIONAL l… [#924]
- avrxmega3: fix header installation for attiny424 [#921]
- Rename aux.c to _aux_.c duplicate [#920]
- iom32u4.h #define USBRF 5 [#919]
- memory: Allow the use of stdint types [#918]
- doc: Note attiny9 being supported documentation [#915]
- Fix __BOOT_SIGROW_READ for some ATtiny [#914]
- .githud [#908]
- Extend _delay_loop_2 so it works with AVR_TINY. [#902]
- Fix inline asm constraints of wdt_enable, wdt_disable. [#901]
- Use autotools to determine Python command to run mlib-gen.py. [#896]
- Issue #894: Remove scripts that make binary distributions and RPMs. [#895]
- Fix issue #892: [#893]
- Fix some avrxmega3 device names of generated files [#885]
- .gitignore: Add outputs of ./boostrap [#883]
- *.py: Use python3 instead of python [#882]
- Added support for AVR-DA and DB devices [#881]
- README.md: fix typo in URL [#873]
- Add patches to fix building man pages:
* 0001-Return-files-missed-in-the-release-tarball.patch
* 0002-dox_latex_header.tex-Add-to-EXTRA_DIST-969-1023.patch
* 0003-dox-api-Makefile.am-EXTRA_DIST-Add-filter-dox.sh-avr.patch
-------------------------------------------------------------------
Thu Nov 10 20:04:44 UTC 2022 - Klaus Kämpf <kkaempf@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file for package avr-libc
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,7 +17,7 @@
%define into_sysroot 1
%define doc_vers %{version}
%define doc_vers 2.2.0
%if %{into_sysroot}
%define PREFIX /usr/avr/sys-root
%else
@ -32,60 +32,72 @@
%{!?gcc_version: %define gcc_version 7}
Name: avr-libc
Version: 2.1.0
Version: 2.2.1
Release: 0
Summary: The C Runtime Library for AVR Microcontrollers
License: BSD-3-Clause
Group: Development/Libraries/C and C++
URL: http://savannah.nongnu.org/projects/avr-libc
Source: http://savannah.nongnu.org/download/%{name}/%{name}-%{version}.tar.bz2
Source1: http://savannah.nongnu.org/download/%{name}/%{name}-%{version}.tar.bz2.sig
Source2: http://savannah.nongnu.org/download/%{name}/%{name}-manpages-%{doc_vers}.tar.bz2
Source3: http://savannah.nongnu.org/download/%{name}/%{name}-manpages-%{doc_vers}.tar.bz2.sig
Source4: http://savannah.nongnu.org/download/%{name}/%{name}-user-manual-%{doc_vers}.tar.bz2
# fails gpg check Source5: http://savannah.nongnu.org/download/%{name}/%{name}-user-manual-%{doc_vers}.tar.bz2.sig
Source6: http://savannah.nongnu.org/download/%{name}/%{name}-user-manual-%{doc_vers}.pdf.bz2
Source7: http://savannah.nongnu.org/download/%{name}/%{name}-user-manual-%{doc_vers}.pdf.bz2.sig
Source: https://github.com/avrdudes/avr-libc/releases/download/%{name}-2_2_1-release/%{name}-%{version}.tar.bz2
Source1: https://github.com/avrdudes/avr-libc/releases/download/%{name}-2_2_1-release/%{name}-%{version}.tar.bz2.sig
Source4: https://avrdudes.github.io/avr-libc/%{name}-user-manual-%{doc_vers}.tar.bz2
Source6: https://avrdudes.github.io/avr-libc/%{name}-user-manual-%{doc_vers}.pdf
# from http://pgp.mit.edu/pks/lookup?op=vindex&search=0x7E9EADC3030D34EB (Joerg Wunsch)
Source8: %{name}.keyring
# from ?? - poor man's logic analyzer by 'jw'
Source9: logicp-1.02.tgz
Source100: %{name}-rpmlintrc
Patch0: 0001-Return-files-missed-in-the-release-tarball.patch
Patch1: 0002-dox_latex_header.tex-Add-to-EXTRA_DIST-969-1023.patch
Patch2: 0003-dox-api-Makefile.am-EXTRA_DIST-Add-filter-dox.sh-avr.patch
# required for ./bootstrap
BuildRequires: autoconf
# required for ./bootstrap
BuildRequires: automake
BuildRequires: cross-avr-binutils
BuildRequires: cross-avr-gcc%{gcc_version}-bootstrap
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: findutils
BuildRequires: ghostscript
# required for autosetup -S git
BuildRequires: git
BuildRequires: netpbm
# required for ./bootstrap
BuildRequires: python3
BuildRequires: transfig
Recommends: avr-example
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# does not depend on host arch. bnc#233520
BuildArch: noarch
%if 0%{?suse_version} < 1100
BuildRequires: libgmp3
BuildRequires: libmpfr1
%endif
%description
The C runtime library for the AVR family of microcontrollers for use
with the GNU toolset (cross-avr-binutils, cross-avr-gcc, uisp, etc.).
%prep
%setup -q -a2 -a4 -b9
# -S git is a workaround for:
# File avr-libc-logo-large.png: git binary diffs are not supported.
%autosetup -a4 -b9 -S git
cp -a %{SOURCE6} .
bunzip2 %{name}-user-manual-%{doc_vers}.pdf.bz2
%build
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags}"
./configure --prefix=%{PREFIX} --host=avr
# required for 0002-dox_latex_header.tex-Add-to-EXTRA_DIST-969-1023.patch
# and 0003-dox-api-Makefile.am-EXTRA_DIST-Add-filter-dox.sh-avr.patch
./bootstrap
./configure --prefix=%{PREFIX} --host=avr --mandir=%{PREFIX}/man
make %{?_smp_mflags} CC="avr-gcc -pipe" CCAS="avr-gcc -pipe"
# dox-html target builds man pages
make %{?_smp_mflags} -C doc/api dox-html
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
make -C doc/api DESTDIR=%{buildroot} install-dox-man %{?_smp_mflags}
mkdir -p %{buildroot}%{_docdir}/%{name}
cp -pr AUTHORS ChangeLog* LICENSE NEWS README *.pdf %{buildroot}%{_docdir}/%{name}
cp -pr AUTHORS LICENSE NEWS README.md *.pdf %{buildroot}%{_docdir}/%{name}
cp -pr %{name}-user-manual-%{doc_vers} %{buildroot}%{_docdir}/%{name}/user-manual-%{doc_vers}
ln -s %{_docdir}/%{name}/user-manual-%{doc_vers} %{buildroot}/%{PREFIX}/share/doc/%{name}-%{version}/user-manual
ln -s %{PREFIX}/share/doc/%{name}-%{version}/examples %{buildroot}%{_docdir}/%{name}
@ -97,13 +109,11 @@ EOF
mv %{buildroot}/%{PREFIX}/avr/* %{buildroot}/%{PREFIX}/
rm -Rf %{buildroot}/%{PREFIX}/avr
mkdir -p %{buildroot}/%{PREFIX}/
cp -pr man %{buildroot}/%{PREFIX}/.
# do not run brp-strip-debug on our avr-elf objects.
export NO_BRP_STRIP_DEBUG=true
%fdupes %{buildroot}
%fdupes %{buildroot}/%{PREFIX}
%fdupes -s %{buildroot}%{_docdir}/%{name}
%check
### selftest ###