From patchwork Tue Dec 6 14:47:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gaius Mulley X-Patchwork-Id: 30327 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2864606wrr; Tue, 6 Dec 2022 06:52:01 -0800 (PST) X-Google-Smtp-Source: AA0mqf54HdmV69kBaXYjecanGmE18oMk0roGMnW5EZOj/3atx1ylaZCR2VOajoKCZ5RZrz/aYPiv X-Received: by 2002:a17:906:9f11:b0:7b4:7758:f1e1 with SMTP id fy17-20020a1709069f1100b007b47758f1e1mr65512991ejc.145.1670338321572; Tue, 06 Dec 2022 06:52:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670338321; cv=none; d=google.com; s=arc-20160816; b=zdNlZLU8+oUhR6q0Tw9TzVrH/wNUKCDDum8gYROJL8ZMUgZGXHNsnk8+o3ehxidH+J eriC4+gShVPmUTLjZohD0xsSx8WaIKhcbg03rdG3d6u7Q7AVGFIG/dU7mIR4PQFQ+TvT 0HqEfaKo2GRLYD7wXiTtSCgMWDsHd6rQxTTk1u3RGZYtBAIgJX8HO9eLwoVasR54Z4rY JEVzAjx9z5wdQXXPPDQ5L7KHAqk55mffF5kYDH91v2VrSkssHdOQldw5SfyN7pUw5gYP UkL82ta88r+EXEY0nRguCARWTffCBmy1/F1NAcdaFtu/2Jjdqt72vWWgD8zvH8EHS4KY F+JA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:date:message-id:to :subject:dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=cAiY5Q9YndNSkw24ptYX6D3Mw55yRzmsAh0E7cddNRo=; b=wWV/44wrQK9R+aLttR5PZzhfBYE0OVj5qEakHL2OiUAOObgY4rCPhjz66HdwoZlFQ5 hDIHu0AIimjExHC3D10EbzIAaDDC4t+7niZBaP86FGkiaHrEe4GWVt1iAC4hXLvFiddL 7+qQIBJKrC3Z4fE3hPDSXJDqcW2GEg7KWXQf93DnkGsYL/8kFUix9FTxK/M61iMDf4xZ 2INdB+bI3Mbf65do/9B4l6SjRpjSBonq4cxEuYuFs2YwRiNVpcdVhalA7+f3iTiprBDv X8aJM3026n4ud3SAB9fHKtVHP7T1xzd7KDaBhMxYBWgUhZvJLlMNg+H+3y+KpyGSC2oI Rv9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=hzarJa2x; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id xh2-20020a170906da8200b007826cb6f57csi13827654ejb.407.2022.12.06.06.52.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 06:52:01 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=hzarJa2x; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 41D74381ECB1 for ; Tue, 6 Dec 2022 14:49:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 41D74381ECB1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1670338193; bh=cAiY5Q9YndNSkw24ptYX6D3Mw55yRzmsAh0E7cddNRo=; h=Subject:To:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=hzarJa2xDSaJE8ChU5NNubBhKTQGWI4/GVf3V5xVt8phkQV/3z3DzYyiOdzrjuYfq pB7kX8ccDC+WVLRqIjTXdR+NnufJhsUXhdkF1rVBWFX36BzWbnr5g1zZP7xpQuj7p8 AgdwDmBmYG/DiWOLydJejzX4bOe1EzYtdbfdYw80= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by sourceware.org (Postfix) with ESMTPS id 1AA6D3864A32 for ; Tue, 6 Dec 2022 14:47:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1AA6D3864A32 Received: by mail-wr1-x436.google.com with SMTP id h12so23746636wrv.10 for ; Tue, 06 Dec 2022 06:47:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=date:message-id:to:subject:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cAiY5Q9YndNSkw24ptYX6D3Mw55yRzmsAh0E7cddNRo=; b=e1VQco6vY0otkOmIKJ4AfhllN0pNV2LxN7tTRFSLkkb0ryi7T+IC8P+dZ8bjE1rG6E vHg465TeoiEEbL7c7SkW2UwQ/gp3ATTsELz39h8z//1SNYsJT79HJBZAKZqiOoUZHCDR xoJBAYyPm8FpMFkC0DRfA5GYZ1OdwcIbVNY1bARxgACYGW16kkpD/iXaM5dXT4CCHRGL xGeXWs7AYMgvD55siYG0FqlfnvJRJblzTp1Z9c8dHvQOMyIxCYsSjamUPlQeY/sjk0A1 2AXoMnK/0Q6UYcaDb5lrFDtHcSMipGY9pMU5uhj8JH8J2mLoLMnHXT6jce/St+kPmi0H fDIg== X-Gm-Message-State: ANoB5pkYOAnoiDOwLtv2ori1/j23EjBOW31OXNnMHlLFQn0Rz4sWMGnV fu+Ico6UU8Rho1FsliIFwUETgV5Kybs= X-Received: by 2002:adf:bb0b:0:b0:242:61ab:5976 with SMTP id r11-20020adfbb0b000000b0024261ab5976mr6151559wrg.257.1670338049375; Tue, 06 Dec 2022 06:47:29 -0800 (PST) Received: from lancelot ([195.147.220.46]) by smtp.gmail.com with ESMTPSA id dn13-20020a05600c654d00b003c6bd12ac27sm21122793wmb.37.2022.12.06.06.47.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 06:47:29 -0800 (PST) X-Google-Original-From: Gaius Mulley Received: from gaius by lancelot with local (Exim 4.94.2) (envelope-from ) id 1p2ZEE-004QfW-Mo for gcc-patches@gcc.gnu.org; Tue, 06 Dec 2022 14:47:26 +0000 Subject: [PATCH v3 8/19] modula2 front end: libgm2 contents To: X-Mailer: mail (GNU Mailutils 3.10) Message-Id: Date: Tue, 06 Dec 2022 14:47:26 +0000 X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Gaius Mulley via Gcc-patches From: Gaius Mulley Reply-To: Gaius Mulley Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1751476676195866391?= X-GMAIL-MSGID: =?utf-8?q?1751476676195866391?= This patch set consists of the libgm2 makefile, autoconf sources necessary to build the libm2pim, libm2iso, libm2min, libm2cor and libm2log. ------8<----------8<----------8<----------8<----------8<----------8<---- diff -ruw /dev/null gcc-git-devel-modula2/libgm2/ChangeLog --- /dev/null 2022-08-24 16:22:16.888000070 +0100 +++ gcc-git-devel-modula2/libgm2/ChangeLog 2022-12-06 02:56:51.428775868 +0000 @@ -0,0 +1,506 @@ +2022-05-18 Gaius Mulley + + * Corrected dates on all source files. + * libm2pim/Selective.c: Reformatted comments. + * libm2pim/SysExceptions.c: Reformatted comments. + * libm2pim/dtoa.c: Reformatted comments. + * libm2pim/ldtoa.c: Reformatted comments. + * libm2pim/sckt.c: Reformatted comments. + * libm2pim/termios.c: Reformatted comments. + * libm2pim/wrapc.c: Reformatted comments. + * libm2pim/termios.c: Reformatted comments within enum. + * libm2pim/Selective.c: Correct spelling. + * libm2pim/termios.c: Use GNU comment formatting. + +2022-05-17 Gaius Mulley + + * Corrected dates on all source files. + +2022-03-02 Gaius Mulley + + * libm2pim/sckt.c (tcpServerEstablishPort): Corrected spelling. + (tcpServerEstablish) Corrected spelling. + +2021-06-27 Gaius Mulley + + * Makefile.am: renamed getopt.c to cgetopt.c. + +2021-05-29 Gaius Mulley + + * Makefile.in: (rebuilt). + * aclocal.m4: (rebuilt). + * configure: (rebuilt). + * configure.ac: tidied up messages. Removed android + from the list of supported hosts. Corrected a comment + * libm2pim/Makefile.am: Conditionally build. + * libm2cor/Makefile.am: Conditionally build. + * libm2log/Makefile.am: Conditionally build. + * libm2iso/Makefile.am: Conditionally build. + * libm2cor/Makefile.in: (Rebuilt). + * libm2iso/Makefile.in: (Rebuilt). + * libm2log/Makefile.in: (Rebuilt). + * libm2min/Makefile.in: (Rebuilt). + * libm2pim/Makefile.in: (Rebuilt). + +2021-05-28 Gaius Mulley + + * Makefile.in: (Rebuilt). + * aclocal.m4: (Rebuilt). + * configure: (Rebuilt). + * configure.ac: Introduce checks for supported host + operating system and also known detect target architectures + which are currently restricted to minimal runtime libraries. + * libm2cor/Makefile.in: (Rebuilt). + * libm2iso/Makefile.in: (Rebuilt). + * libm2log/Makefile.in: (Rebuilt). + * libm2min/Makefile.in: (Rebuilt). + * libm2pim/Makefile.in: (Rebuilt). + +2021-02-12 Gaius Mulley + + * libm2iso/RTco.c: (threadSem) new declaration + and implmentation of thread semaphores used internally by + the m2 runtime system. + +2021-01-13 Gaius Mulley + + * Makefile.am: Updated dates. + * aclocal.m4: (Rebuilt). + * autogen.sh: Updated dates. + * configure: (Rebuilt). + * configure.ac: Updated dates. + * libm2cor/KeyBoardLEDs.c: Updated dates. + * libm2cor/Makefile.am: Updated dates. + * libm2iso/ChanConsts.h: Updated dates. + * libm2iso/ErrnoCategory.c: Updated dates. + * libm2iso/Makefile.am: Updated dates. + * libm2iso/RTco.c: Updated dates. + * libm2iso/wrapsock.c: Updated dates. + * libm2iso/wraptime.c: Updated dates. + * libm2log/Break.c: Updated dates. + * libm2log/Makefile.am: Updated dates. + * libm2min/Makefile.am: Updated dates. + * libm2min/libc.c: Updated dates. + * libm2pim/Makefile.am: Updated dates. + * libm2pim/Selective.c: Updated dates. + * libm2pim/SysExceptions.c: Updated dates. + * libm2pim/UnixArgs.c: Updated dates. + * libm2pim/dtoa.c: Updated dates. + * libm2pim/errno.c: Updated dates. + * libm2pim/getopt.c: Updated dates. + * libm2pim/ldtoa.c: Updated dates. + * libm2pim/sckt.c: Updated dates. + * libm2pim/target.c: Updated dates. + * libm2pim/termios.c: Updated dates. + * libm2pim/wrapc.c: Updated dates. + +2020-11-20 Gaius Mulley + + * Makefile.in: (Rebuilt). + * aclocal.m4: (Rebuilt). + * configure: (Rebuilt). + * configure.ac: (libtool_VERSION=17.0.0) + +2020-06-18 Gaius Mulley + + * Makefile.in: (Rebuilt). + * aclocal.m4: (Rebuilt). + * autogen.sh: Execute automake including dependencies. + * configure: (Rebuilt). + * libm2cor/Makefile.in: (Rebuilt). + * libm2iso/Makefile.in: (Rebuilt). + * libm2log/Makefile.am: SYSTEM.def is a dependency using + BUILT_SOURCES. + * libm2log/Makefile.in: (Rebuilt). + * libm2min/Makefile.in: (Rebuilt). + * libm2pim/Makefile.in: (Rebuilt). + +2020-06-15 Gaius Mulley + + * libm2pim/Makefile.am: Added SYSTEM.def as a dependency. + * libm2log/Makefile.am: Added SYSTEM.def as a dependency. + +2020-06-11 Matthias Klose + + * Makefile.am: Reordered libraries. + * Makefile.in: (Rebuilt). + * libm2pim/Makefile.am: (libm2pim_la_LIBADD) Added + definition. + * libm2pim/Makefile.in: (Rebuilt). + +2020-05-01 Gaius Mulley + + * libm2cor/KeyBoardLEDs.c: Include sys/ioctl.h + and stdio.h to fix implicit declarations of ioctl and + perror. + * libm2iso/RTco.c: Include . + * libm2pim/SysExceptions.c: (HAVE_STDIO_H) Checked + and stdio.h included to fix perror implicit declaration. + +2020-04-29 Gaius Mulley + + * libm2pim/wrapc.c: (HAVE_SYS_TYPES_H) checked to include + sys/types.h. (HAVE_TIME_H) checked to include time.h. + Fixes missing prototype errors. (HAVE_UNISTD_H) checked + to include unistd.h to fix getuid missing prototype. + +2020-01-08 Gaius Mulley + + * libm2min/libc.c: (exit) noreturn added. + (abort) noreturn added. + +2019-12-10 Matthias Klose + + * libm2cor/Makefile.am: (libsubdir) Corrected using + target_alias. + * libm2iso/Makefile.am: (libsubdir) Corrected using + target_alias. + * libm2log/Makefile.am: (libsubdir) Corrected using + target_alias. + * libm2min/Makefile.am: (libsubdir) Corrected using + target_alias. + * libm2pim/Makefile.am: (libsubdir) Corrected using + target_alias. + * libm2cor/Makefile.in: Regenerated. + * libm2iso/Makefile.in: Regenerated. + * libm2log/Makefile.in: Regenerated. + * libm2min/Makefile.in: Regenerated. + * libm2pim/Makefile.in: Regenerated. + +2019-12-10 Gaius Mulley + + * libm2iso/RTco.c: Corrected include files + for target building. + +2019-12-09 Gaius Mulley + + * configure.ac: Remove reference to config dir. + (ACX_NONCANONICAL_TARGET) Removed. + * libm2cor/Makefile.in: Regenerated. + * libm2iso/Makefile.in: Regenerated. + * libm2log/Makefile.in: Regenerated. + * libm2min/Makefile.in: Regenerated. + * libm2pim/Makefile.in: Regenerated. + * configure.ac: (LT_INIT) Used instead of AM_PROG_LIBTOOL. + * libm2cor/Makefile.in: Regenerated. + * libm2iso/Makefile.in: Regenerated. + * libm2log/Makefile.in: Regenerated. + * libm2min/Makefile.in: Regenerated. + * libm2pim/Makefile.in: Regenerated. + +2019-12-04 Matthias Klose + + * Makefile.in: Regenerated. + * aclocal.m4: Regenerated from automake-1.15.1. + * libm2cor/Makefile.am: Added -version-info. + * libm2cor/Makefile.in: Regenerated. + * libm2iso/Makefile.am: Added -version-info. + * libm2iso/Makefile.in: Regenerated. + * libm2log/Makefile.am: Added -version-info. + * libm2log/Makefile.in: Regenerated. + * libm2min/Makefile.am: Added -version-info. + * libm2min/Makefile.in: Regenerated. + * libm2pim/Makefile.am: Added -version-info. + * libm2pim/Makefile.in: Regenerated. + +2019-12-03 Gaius Mulley + + * libm2min/Makefile.am: (M2LIBDIR) Corrected + destination directory to m2/m2min. + +2019-11-19 Gaius Mulley + + * multilib fixes + * Makefile.am: (MULTIBUILDTOP) propagate. + * Makefile.in: (Regenerated). + * configure: (Regenerated). + * configure.ac: (ACX_NONCANONICAL_TARGET) Removed. + * libm2cor/Makefile.am: (MULTIBUILDTOP) Propagate. + * libm2cor/Makefile.in: (Regenerated). + * libm2iso/Makefile.am: (MULTIBUILDTOP) Propagate. + * libm2iso/Makefile.in: (Regenerated). + * libm2log/Makefile.am: (MULTIBUILDTOP) Propagate. + * libm2log/Makefile.in: (Regenerated). + * libm2min/Makefile.am: (MULTIBUILDTOP) Propagate. + * libm2min/Makefile.in: (Regenerated). + * libm2pim/Makefile.am: (MULTIBUILDTOP) Propagate. + * libm2pim/Makefile.in: (Regenerated). + +2019-11-18 Gaius Mulley + + * configure: (Regenerated). + * configure.ac: (libtool_VERSION=15.0.0). + Place AM_ENABLE_MULTILIB above GCC_NO_EXECUTABLES. + +2019-11-13 Gaius Mulley + + * libm2pim/Selective.c: Changed to GPL3+ and fixed + formatting. + * libm2pim/SysExceptions.c: Changed to GPL3+ and fixed + formatting. + * libm2pim/UnixArgs.c: Changed to GPL3+ and fixed + formatting. + * libm2pim/dtoa.c: Changed to GPL3+ and fixed + formatting. + * libm2pim/errno.c: Changed to GPL3+ and fixed + formatting. + * libm2pim/getopt.c: Changed to GPL3+ and fixed + formatting. + * libm2pim/ldtoa.c: Changed to GPL3+ and fixed + formatting. + * libm2pim/sckt.c: Changed to GPL3+ and fixed + formatting. + * libm2pim/target.c: Changed to GPL3+ and fixed + formatting. + * libm2pim/termios.c: Changed to GPL3+ and fixed + formatting. + * libm2pim/wrapc.c: Changed to GPL3+ and fixed + formatting. + +2019-11-12 Gaius Mulley + + * libm2cor/KeyBoardLEDs.c: GPLv3 and reformatted. + * libm2iso/ChanConsts.h: GPLv3 and reformatted. + * libm2iso/ErrnoCategory.c: GPLv3 and reformatted. + * libm2iso/RTco.c: GPLv3 and reformatted. + * libm2iso/wrapsock.c: GPLv3 and reformatted. + * libm2iso/wraptime.c: GPLv3 and reformatted. + * libm2cor/Makefile.am: GPLv3. + * libm2iso/Makefile.am: GPLv3. + * libm2log/Makefile.am: GPLv3. + * libm2min/Makefile.am: GPLv3. + * libm2pim/Makefile.am: GPLv3. + * libm2log/Break.c: GPLv3 and reformatted. + * libm2min/libc.c: GPLv3 and reformatted. + +2019-11-04 Gaius Mulley + + * libcor/Makefile.am: (MULTIOSSUBDIR) quote test. + * libiso/Makefile.am: (MULTIOSSUBDIR) quote test. + * libpim/Makefile.am: (MULTIOSSUBDIR) quote test. + * liblog/Makefile.am: (MULTIOSSUBDIR) quote test. + * libmin/Makefile.am: (MULTIOSSUBDIR) quote test. + * libulm/Makefile.am: (MULTIOSSUBDIR) quote test. + * libpth/Makefile.am: (MULTIOSSUBDIR) quote test. + * libcor/Makefile.in: Regenerated. + * libiso/Makefile.in: Regenerated. + * libpim/Makefile.in: Regenerated. + * liblog/Makefile.in: Regenerated. + * libmin/Makefile.in: Regenerated. + * libulm/Makefile.in: Regenerated. + * libpth/Makefile.in: Regenerated. + +2019-10-25 Gaius Mulley + + * libcor/Makefile.am: Added -fm2-g -g. + * libiso/Makefile.am: Added -fm2-g -g and include + path to include ../ + * libiso/RTco.c: Call HALT if the thread fails to + find itself. Place initialized inside critical region. + * libpim/Makefile.am: Added -fm2-g -g. + +2019-09-27 Gaius Mulley + + * libulm: Removed. + * Makefile.am: Removed Ulm libaraies. + * configure.ac: Removed Ulm libaraies. + +2019-08-01 Gaius Mulley + + * libpim/Makefile.am: (M2MODS) added GetOpt.mod + and OptLib.mod. (M2DEFS) added GetOpt.def, + OptLib.def and getopt.def. (libgm2_la_SOURCES) + added wrapc.c and getopt.c. + +2019-07-10 Gaius Mulley + + * libpth/Makefile.am: Use $(MAKE) rather than make. + * libcor/KeyBoardLEDs.c: Reformatted to GNU coding + standards. Also added/corrected empty functions for non + linux targets. Fixed the GPL comment. + +2019-07-09 Rainer Orth + + * Makefile.am: (multilib.am) Included. + +2019-04-03 Gaius Mulley + + * Makefile.in: Regenerated. + * aclocal.m4: Regenerated. + * autogen.sh: Removed version numbers. + * config/libtool.m4: New version of the file + taken from libgo/config. + * configure: Regenerated. + * configure.ac: Updated version numbers. + * libcor/Makefile.in: Regenerated. + * libiso/Makefile.in: Regenerated. + * liblog/Makefile.in: Regenerated. + * libmin/Makefile.in: Regenerated. + * libpim/Makefile.in: Regenerated. + * libulm/Makefile.in: Regenerated. + +2019-03-29 Gaius Mulley + + * configure: Regenerated. + * configure.ac: Implement --enable-libpth-m2 + * libpth/Makefile.am: Pass FLAGS_TO_PASS to make. + move install rules into pth subdirectory. + * libpth/pth/Makefile.am: Added install rules. + +2018-11-27 Gaius Mulley + + * libpim/wrapc.c: Reformatted according to GNU + coding standards. Also defended against macro omissions. + * libiso/wraptime.c: Fixed function declaration + and erroneous return value. + +2018-04-16 Gaius Mulley + + * Makefile.am: Specify the libtool location. + * Makefile.in: Regenerated. + * aclocal.m4: Regenerated. + * autogen.sh: Corrected script to regenerate + using the correct macros and versions of autoconf tools. + * configure: Regenerated. + * configure.ac: Regenerated. + * libcor/Makefile.in: Regenerated. + * libiso/Makefile.in: Regenerated. + * liblog/Makefile.in: Regenerated. + * libmin/Makefile.in: Regenerated. + * libpim/Makefile.in: Regenerated. + * libulm/Makefile.in: Regenerated. + +2018-04-14 Gaius Mulley + + * Makefile.am: Changed to reference the config directory. + * Makefile.in: Regenerated. + * aclocal.m4: Regenerated. + * autogen.sh: Added new script. + * config.h.in: Regenerated. + * configure: Regenerated. + * configure.ac: Minor corrections. + * libcor/Makefile.am: Use $(LIBTOOL). + * libcor/Makefile.in: Regenerated. + * libiso/Makefile.am: Use $(LIBTOOL). + * libiso/Makefile.in: Regenerated. + * liblog/Makefile.am: Use $(LIBTOOL). + * liblog/Makefile.in: Regenerated. + * libmin/Makefile.am: Use $(LIBTOOL). + * libmin/Makefile.in: Regenerated. + * libpim/Makefile.am: Use $(LIBTOOL). + * libpim/Makefile.in: Regenerated. + * libulm/Makefile.am: Use $(LIBTOOL). + * libulm/Makefile.in: Regenerated. + +2018-04-10 Gaius Mulley + + * configure.ac: Added test to AM_ENABLE_MULTILIB. + * Makefile.in: Regenerated. + * aclocal.m4: Regenerated. + * autogen.sh: Updated. + * config.h.in: Regenerated. + * configure: Regenerated. + * libcor/Makefile.in: Regenerated. + * libiso/Makefile.in: Regenerated. + * liblog/Makefile.in: Regenerated. + * libmin/Makefile.am: Added -fno-m2-plugin + * libmin/Makefile.in: Regenerated. + * libpim/Makefile.in: Regenerated. + * libulm/Makefile.in: Regenerated. + +2017-12-27 Gaius Mulley + + * libpim/wrapc.c: (wrapc_isfinite) New function. + +2016-06-09 Gaius Mulley + + * libpim/dtoa.c: Use memmove instead of memcpy. + +2016-03-14 Gaius Mulley + + * libpim/wrapc.c: Corrected spacing. + +2014-12-24 Gaius Mulley + + * sckt.c: Added conditional import of + stdio.h as reported by Christoph Schlegel. + +2014-12-23 Gaius Mulley + + * libulm/Makefile.am: Added pim libs to the + path on the createUlmSys command. + +2014-12-22 Gaius Mulley + + * libulm/Makefile.am: Added rule to build + SYSTEM.def as a built source. + +2014-12-06 Gaius Mulley + + * libcor/Makefile.in: Add .la to list of SUFFIXES. + install .la archive. + * libcor/Makefile.am: Install .la archive. + * libiso/Makefile.in: Install .la archive. + * libiso/Makefile.am: Install .la archive. + * liblog/Makefile.am: Install .la archive. + * liblog/Makefile.in: Install .la archive. + * libmin/Makefile.am: Install .la archive. + * libmin/Makefile.in: Install .la archive. + * libpim/Makefile.am: Install .la archive. + * libpim/Makefile.in: Install .la archive. + * libulm/Makefile.am: Install .la archive. + * libulm/Makefile.in: Install .la archive. + +2014-12-05 Gaius Mulley + + * libmin/Makefile.am: Add .la to the list of SUFFIXES. + * libulm/Makefile.am: Add .la to the list of SUFFIXES. + * libpim/Makefile.am: Add .la to the list of SUFFIXES. + * libcor/Makefile.am: Add .la to the list of SUFFIXES. + * liblog/Makefile.am: Add .la to the list of SUFFIXES. + * libiso/Makefile.am: Add .la to the list of SUFFIXES. + +2014-07-11 Gaius Mulley + + * complete rewrite and restructuring of libgm2. + * gcc-versionno/libgm2/aclocal.m4: (Rebuilt) + * gcc-versionno/libgm2/autogen.sh: (Rebuilt) + * gcc-versionno/libgm2/config.h.in: (New file) + * gcc-versionno/libgm2/configure: (Rebuilt) + * gcc-versionno/libgm2/configure.ac: (New file) + * gcc-versionno/libgm2/libcor: (New directory) + * gcc-versionno/libgm2/libiso: (New directory) + * gcc-versionno/libgm2/liblog: (New directory) + * gcc-versionno/libgm2/libmin: (New directory) + * gcc-versionno/libgm2/libpim: (New directory) + * gcc-versionno/libgm2/libulm: (New directory) + * gcc-versionno/libgm2/Makefile.am: (New file) + * gcc-versionno/libgm2/Makefile.in: (rebuilt) + * gcc-versionno/libgm2/p2c: (New directory) + +2013-12-06 Gaius Mulley + + * gcc-versionno/gcc/gm2/Make-lang.in: Changed flag to -fpim + and changed path appropriately. + +2013-12-05 Gaius Mulley + + * gm2/libgm2/Makefile.in: Build coroutine version of SYSTEM.def. + +2013-10-17 Gaius Mulley + + * gm2/libgm2/Makefile.in: Corrected install of iso SYSTEM.def. + Ensure that we copy form the object directory and avoid the + template version in the source directory. + +2013-09-14 Gaius Mulley + + * gm2/libgm2/Makefile.in: Many changes to allow more libraries + to build and also build SYSTEM.def for the pim, iso and min + libraries. + +2013-07-08 Gaius Mulley + + * gm2/ChangeLog: (New file). + * gm2/libgm2/Makefile.in: Added install rules. Many of which + were adapted from gcc/gm2/Make-file.in. diff -ruw /dev/null gcc-git-devel-modula2/libgm2/config.h.in --- /dev/null 2022-08-24 16:22:16.888000070 +0100 +++ gcc-git-devel-modula2/libgm2/config.h.in 2022-12-06 02:56:51.432775922 +0000 @@ -0,0 +1,313 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* function access exists */ +#undef HAVE_ACCESS + +/* function brk exists */ +#undef HAVE_BRK + +/* function cfmakeraw exists */ +#undef HAVE_CFMAKERAW + +/* function close exists */ +#undef HAVE_CLOSE + +/* function creat exists */ +#undef HAVE_CREAT + +/* function ctime exists */ +#undef HAVE_CTIME + +/* Define to 1 if you have the header file. */ +#undef HAVE_DIRECT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DIRENT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* function dup exists */ +#undef HAVE_DUP + +/* Define to 1 if you have the header file. */ +#undef HAVE_ERRNO_H + +/* function execve exists */ +#undef HAVE_EXECVE + +/* function exit exists */ +#undef HAVE_EXIT + +/* function fcntl exists */ +#undef HAVE_FCNTL + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* function fstat exists */ +#undef HAVE_FSTAT + +/* function getdents exists */ +#undef HAVE_GETDENTS + +/* function getgid exists */ +#undef HAVE_GETGID + +/* function getpid exists */ +#undef HAVE_GETPID + +/* function gettimeofday exists */ +#undef HAVE_GETTIMEOFD + +/* function getuid exists */ +#undef HAVE_GETUID + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* function ioctl exists */ +#undef HAVE_IOCTL + +/* function kill exists */ +#undef HAVE_KILL + +/* Define to 1 if you have the header file. */ +#undef HAVE_LANGINFO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* function link exists */ +#undef HAVE_LINK + +/* function lseek exists */ +#undef HAVE_LSEEK + +/* Define to 1 if you have the header file. */ +#undef HAVE_MALLOC_H + +/* have math.h */ +#undef HAVE_MATH_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETDB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_IN_H + +/* function open exists */ +#undef HAVE_OPEN + +/* function pause exists */ +#undef HAVE_PAUSE + +/* function pipe exists */ +#undef HAVE_PIPE + +/* Define to 1 if you have the header file. */ +#undef HAVE_PTHREAD_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_PWD_H + +/* function rand exists */ +#undef HAVE_RAND + +/* function read exists */ +#undef HAVE_READ + +/* function select exists */ +#undef HAVE_SELECT + +/* function setgid exists */ +#undef HAVE_SETGID + +/* function setitimer exists */ +#undef HAVE_SETITIMER + +/* function setuid exists */ +#undef HAVE_SETUID + +/* Define to 1 if you have the header file. */ +#undef HAVE_SIGNAL_H + +/* function signbit exists */ +#undef HAVE_SIGNBIT + +/* function signbitf exists */ +#undef HAVE_SIGNBITF + +/* function signbitl exists */ +#undef HAVE_SIGNBITL + +/* function stat exists */ +#undef HAVE_STAT + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDARG_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDDEF_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* function strsignal exists */ +#undef HAVE_STRSIGNAL + +/* function strtod exists */ +#undef HAVE_STRTOD + +/* function strtold exists */ +#undef HAVE_STRTOLD + +/* Define to 1 if the system has the type `struct stat'. */ +#undef HAVE_STRUCT_STAT + +/* Define to 1 if the system has the type `struct timeval'. */ +#undef HAVE_STRUCT_TIMEVAL + +/* Define to 1 if the system has the type `struct timezone'. */ +#undef HAVE_STRUCT_TIMEZONE + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_ERRNO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_FILE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_IOCTL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_MMAN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_RESOURCE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIMES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_UIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_WAIT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_TERMIOS_H + +/* function times exists */ +#undef HAVE_TIMES + +/* Define to 1 if you have the header file. */ +#undef HAVE_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* function unlink exists */ +#undef HAVE_UNLINK + +/* function wait exists */ +#undef HAVE_WAIT + +/* Define to 1 if you have the header file. */ +#undef HAVE_WCHAR_H + +/* function write exists */ +#undef HAVE_WRITE + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + +/* Version number of package */ +#undef VERSION + +/* Define to 1 if on MINIX. */ +#undef _MINIX + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#undef _POSIX_1_SOURCE + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#undef _POSIX_SOURCE diff -ruw /dev/null gcc-git-devel-modula2/libgm2/Makefile.am --- /dev/null 2022-08-24 16:22:16.888000070 +0100 +++ gcc-git-devel-modula2/libgm2/Makefile.am 2022-12-06 02:56:51.428775868 +0000 @@ -0,0 +1,103 @@ +# Makefile for libgm2. +# Copyright 2013-2022 Free Software Foundation, Inc. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING3. If not see +# . +# +# +# if this file is changed then you need to run +# +# autoreconf2.64 +# +# Modula-2 support. +AUTOMAKE_OPTIONS = 1.8 foreign + +SUFFIXES = .c .mod .def .o .obj .lo .a + +ACLOCAL_AMFLAGS = -I . -I .. -I ../config + +# Multilib support. +MAKEOVERRIDES= + +AM_CFLAGS = -I $(srcdir)/../libgcc -I $(MULTIBUILDTOP)../../gcc/include + +gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) +TOP_GCCDIR := $(shell cd $(top_srcdir) && cd .. && pwd) + +GCC_DIR = $(TOP_GCCDIR)/gcc +GM2_SRC = $(GCC_DIR)/m2 + +toolexeclibdir=@toolexeclibdir@ +toolexecdir=@toolexecdir@ +GM2_FOR_TARGET=@GM2_FOR_TARGET@ + +SUBDIRS = libm2min libm2log libm2cor libm2iso libm2pim +GM2_BUILDDIR := $(shell pwd) +gm2_cdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include + +# Work around what appears to be a GNU make bug handling MAKEFLAGS +# values defined in terms of make variables, as is the case for CC and +# friends when we are called from the top level Makefile. +AM_MAKEFLAGS = \ + "GCC_DIR=$(GCC_DIR)" \ + "GM2_SRC=$(GM2_SRC)" \ + "AR_FLAGS=$(AR_FLAGS)" \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ + "GM2_FOR_TARGET=$(GM2_FOR_TARGET)" \ + "CFLAGS=$(CFLAGS)" \ + "CXXFLAGS=$(CXXFLAGS)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ + "LDFLAGS=$(LDFLAGS)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ + "MAKE=$(MAKE)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ + "MULTIBUILDTOP=$(MULTIBUILDTOP)" \ + "MULTISUBDIR=$(MULTISUBDIR)" \ + "MULTIOSDIR=$(MULTIDIR)" \ + "MULTIFLAGS=$(MULTIFLAGS)" \ + "PICFLAG=$(PICFLAG)" \ + "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ + "SHELL=$(SHELL)" \ + "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ + "exec_prefix=$(exec_prefix)" \ + "infodir=$(infodir)" \ + "libdir=$(libdir)" \ + "includedir=$(includedir)" \ + "prefix=$(prefix)" \ + "tooldir=$(tooldir)" \ + "gxx_include_dir=$(gxx_include_dir)" \ + "AR=$(AR)" \ + "AS=$(AS)" \ + "LD=$(LD)" \ + "RANLIB=$(RANLIB)" \ + "NM=$(NM)" \ + "NM_FOR_BUILD=$(NM_FOR_BUILD)" \ + "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ + "DESTDIR=$(DESTDIR)" \ + "WERROR=$(WERROR)" \ + "TARGET_LIB_PATH=$(TARGET_LIB_PATH)" \ + "TARGET_LIB_PATH_libgm2=$(TARGET_LIB_PATH_libgm2)" \ + "LIBTOOL=$(GM2_BUILDDIR)/libtool" + +# Subdir rules rely on $(FLAGS_TO_PASS) +FLAGS_TO_PASS = $(AM_MAKEFLAGS) + +include $(top_srcdir)/../multilib.am diff -ruw /dev/null gcc-git-devel-modula2/libgm2/configure.ac --- /dev/null 2022-08-24 16:22:16.888000070 +0100 +++ gcc-git-devel-modula2/libgm2/configure.ac 2022-12-06 02:56:51.432775922 +0000 @@ -0,0 +1,376 @@ +# Configure script for libgm2. +# Copyright (C) 2013-2022 Free Software Foundation, Inc. + +# This file is part of GCC. + +# GCC is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. + +# GCC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +# Configure looks for the existence of this file to auto-config each language. +# We define several parameters used by configure: + +# Process this file with autoreconf to produce a configure script. + +AC_INIT(package-unused, version-unused,,libgm2) +AC_CONFIG_SRCDIR(Makefile.am) +# AC_CONFIG_MACRO_DIR([config]) +AC_CONFIG_HEADER(config.h) + +libtool_VERSION=17:0:0 +AC_SUBST(libtool_VERSION) + +AM_ENABLE_MULTILIB(, ..) + +GCC_NO_EXECUTABLES + +AC_USE_SYSTEM_EXTENSIONS + +# Do not delete or change the following two lines. For why, see +# http://gcc.gnu.org/ml/libstdc++/2003-07/msg00451.html +AC_CANONICAL_SYSTEM +target_alias=${target_alias-$host_alias} +AC_SUBST(target_alias) + +AM_INIT_AUTOMAKE([1.9.3 no-define foreign no-dist -Wall -Wno-portability]) + +AH_TEMPLATE(PACKAGE, [Name of package]) +AH_TEMPLATE(VERSION, [Version number of package]) + +AC_ARG_WITH(cross-host, +[ --with-cross-host=HOST Configuring with a cross compiler]) + +# Checks for header files. +AC_HEADER_STDC +AC_HEADER_SYS_WAIT +AC_CHECK_HEADER([math.h], + [AC_DEFINE([HAVE_MATH_H], [1], [have math.h])]) + +AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h \ + time.h \ + fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \ + sys/resource.h sys/param.h sys/times.h sys/stat.h \ + sys/socket.h \ + sys/wait.h sys/ioctl.h errno.h sys/errno.h \ + pwd.h direct.h dirent.h signal.h malloc.h langinfo.h \ + pthread.h stdarg.h stdio.h sys/types.h termios.h \ + netinet/in.h netdb.h sys/uio.h sys/stat.h wchar.h) + + +AC_CANONICAL_HOST +ACX_NONCANONICAL_HOST +ACX_NONCANONICAL_TARGET +GCC_TOPLEV_SUBDIRS + +AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) +AC_ARG_ENABLE(version-specific-runtime-libs, +[ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ], +[case "$enableval" in + yes) version_specific_libs=yes ;; + no) version_specific_libs=no ;; + *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);; + esac], +[version_specific_libs=no]) +AC_MSG_RESULT($version_specific_libs) + +AC_ARG_WITH(slibdir, +[ --with-slibdir=DIR shared libraries in DIR [LIBDIR]], +slibdir="$with_slibdir", +if test "${version_specific_libs}" = yes; then + slibdir='$(libsubdir)' +elif test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then + slibdir='$(exec_prefix)/$(host_noncanonical)/lib' +else + slibdir='$(libdir)' +fi) +AC_SUBST(slibdir) + +# Command-line options. +# Very limited version of AC_MAINTAINER_MODE. +AC_ARG_ENABLE([maintainer-mode], + [AC_HELP_STRING([--enable-maintainer-mode], + [enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer])], + [case ${enable_maintainer_mode} in + yes) MAINT='' ;; + no) MAINT='#' ;; + *) AC_MSG_ERROR([--enable-maintainer-mode must be yes or no]) ;; + esac + maintainer_mode=${enableval}], + [MAINT='#']) +AC_SUBST([MAINT])dnl + +toolexecdir=no +toolexeclibdir=no + +# Calculate toolexeclibdir +# Also toolexecdir, though it's only used in toolexeclibdir +case ${version_specific_libs} in + yes) + # Need the gcc compiler version to know where to install libraries + # and header files if --enable-version-specific-runtime-libs option + # is selected. + toolexecdir='$(libdir)/gcc/$(target_noncanonical)' + toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)' + ;; + no) + if test -n "$with_cross_host" && + test x"$with_cross_host" != x"no"; then + # Install a library built with a cross compiler in tooldir, not libdir. + toolexecdir='$(exec_prefix)/$(target_noncanonical)' + toolexeclibdir='$(toolexecdir)/lib' + else + toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)' + toolexeclibdir='$(libdir)' + fi + multi_os_directory=`$CC -print-multi-os-directory` + case $multi_os_directory in + .) ;; # Avoid trailing /. + *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; + esac + ;; +esac + +AC_SUBST(toolexecdir) +AC_SUBST(toolexeclibdir) + +AH_TEMPLATE(PACKAGE, [Name of package]) +AH_TEMPLATE(VERSION, [Version number of package]) + +AM_MAINTAINER_MODE + +# Check the compiler. +# The same as in boehm-gc and libstdc++. Have to borrow it from there. +# We must force CC to /not/ be precious variables; otherwise +# the wrong, non-multilib-adjusted value will be used in multilibs. +# As a side effect, we have to subst CFLAGS ourselves. + +m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) +m4_define([_AC_ARG_VAR_PRECIOUS],[]) +AC_PROG_CC +AC_PROG_CXX +AM_PROG_AS +m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) + +AC_SUBST(CFLAGS) + +# In order to override CFLAGS_FOR_TARGET, all of our special flags go +# in XCFLAGS. But we need them in CFLAGS during configury. So put them +# in both places for now and restore CFLAGS at the end of config. +save_CFLAGS="$CFLAGS" + +# Find other programs we need. +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(NM, nm) +AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error) +AC_PATH_PROG(PERL, perl, perl-not-found-in-path-error) +AC_PROG_MAKE_SET +AC_PROG_INSTALL + +LT_INIT +AC_LIBTOOL_DLOPEN +# AM_PROG_LIBTOOL +AC_SUBST(enable_shared) +AC_SUBST(enable_static) + +AC_CHECK_TYPES([struct timezone, struct stat, struct timeval]) + +AC_LANG_C +# Check the compiler. +# The same as in boehm-gc and libstdc++. Have to borrow it from there. +# We must force CC to /not/ be precious variables; otherwise +# the wrong, non-multilib-adjusted value will be used in multilibs. +# As a side effect, we have to subst CFLAGS ourselves. + +m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) +m4_define([_AC_ARG_VAR_PRECIOUS],[]) +AC_PROG_CC +m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) + +AC_SUBST(CFLAGS) + +AC_DEFUN([GM2_UNDEF],[ + $as_echo "#undef HAVE_$1" >>confdefs.h +]) + +AC_DEFUN([GM2_CHECK_LIB],[ + AC_MSG_CHECKING([m2 front end checking $1 library for $2]) + if test x$gcc_no_link != xyes; then + AC_CHECK_LIB([$1],[$2],[AC_DEFINE([HAVE_$3],[1],[found $2])],[GM2_UNDEF([$3],[$2])]) + else + if test "x$[ac_cv_lib_$1_$2]" = xyes; then + AC_DEFINE([HAVE_$3],[1],[lib$1 includes $2]) + elif test "x$[ac_cv_func_$2]" = xyes; then + AC_DEFINE([HAVE_$3],[1],[function $2 exists]) + else + GM2_UNDEF([$3],[$2]) + fi + fi +]) + +GM2_CHECK_LIB([c],[access],[ACCESS]) +GM2_CHECK_LIB([c],[brk],[BRK]) +GM2_CHECK_LIB([c],[cfmakeraw],[CFMAKERAW]) +GM2_CHECK_LIB([c],[close],[CLOSE]) +GM2_CHECK_LIB([c],[ctime],[CTIME]) +GM2_CHECK_LIB([c],[creat],[CREAT]) +GM2_CHECK_LIB([c],[dup],[DUP]) +GM2_CHECK_LIB([c],[execve],[EXECVE]) +GM2_CHECK_LIB([c],[exit],[EXIT]) +GM2_CHECK_LIB([c],[fcntl],[FCNTL]) +GM2_CHECK_LIB([c],[fstat],[FSTAT]) +GM2_CHECK_LIB([c],[getdents],[GETDENTS]) +GM2_CHECK_LIB([c],[getgid],[GETGID]) +GM2_CHECK_LIB([c],[getpid],[GETPID]) +GM2_CHECK_LIB([c],[gettimeofday],[GETTIMEOFD]) +GM2_CHECK_LIB([c],[getuid],[GETUID]) +GM2_CHECK_LIB([c],[ioctl],[IOCTL]) +GM2_CHECK_LIB([c],[kill],[KILL]) +GM2_CHECK_LIB([c],[link],[LINK]) +GM2_CHECK_LIB([c],[lseek],[LSEEK]) +GM2_CHECK_LIB([c],[open],[OPEN]) +GM2_CHECK_LIB([c],[pause],[PAUSE]) +GM2_CHECK_LIB([c],[pipe],[PIPE]) +GM2_CHECK_LIB([c],[rand],[RAND]) +GM2_CHECK_LIB([c],[read],[READ]) +GM2_CHECK_LIB([c],[select],[SELECT]) +GM2_CHECK_LIB([c],[setitimer],[SETITIMER]) +GM2_CHECK_LIB([c],[setgid],[SETGID]) +GM2_CHECK_LIB([c],[setuid],[SETUID]) +GM2_CHECK_LIB([c],[stat],[STAT]) +GM2_CHECK_LIB([c],[strsignal],[STRSIGNAL]) +GM2_CHECK_LIB([c],[strtod],[STRTOD]) +GM2_CHECK_LIB([c],[strtold],[STRTOLD]) +GM2_CHECK_LIB([c],[times],[TIMES]) +GM2_CHECK_LIB([c],[unlink],[UNLINK]) +GM2_CHECK_LIB([c],[wait],[WAIT]) +GM2_CHECK_LIB([c],[write],[WRITE]) + +GM2_CHECK_LIB([m],[signbit],[SIGNBIT]) +GM2_CHECK_LIB([m],[signbitf],[SIGNBITF]) +GM2_CHECK_LIB([m],[signbitl],[SIGNBITL]) + +AC_MSG_NOTICE([libgm2 has finished checking target libc and libm contents.]) + +# We test the host here and later on check the target. + +# All known M2_HOST_OS values. This is the union of all host operating systems +# supported by gm2. + +M2_SUPPORTED_HOST_OS="aix freebsd hurd linux netbsd openbsd solaris windows" + +M2_HOST_OS=unknown + +case ${host} in + *-*-darwin*) M2_HOST_OS=darwin ;; + *-*-freebsd*) M2_HOST_OS=freebsd ;; + *-*-linux*) M2_HOST_OS=linux ;; + *-*-netbsd*) M2_HOST_OS=netbsd ;; + *-*-openbsd*) M2_HOST_OS=openbsd ;; + *-*-solaris2*) M2_HOST_OS=solaris ;; + *-*-aix*) M2_HOST_OS=aix ;; + *-*-gnu*) M2_HOST_OS=hurd ;; +esac + +# M2_HOST_OS=unknown +if test x${M2_HOST_OS} = xunknown; then + AC_MSG_NOTICE([unsupported host, will build a minimal m2 library]) + BUILD_PIMLIB=false + BUILD_ISOLIB=false + BUILD_CORLIB=false + BUILD_LOGLIB=false +else + AC_MSG_NOTICE([m2 library will be built on ${M2_HOST_OS}]) + BUILD_PIMLIB=true + BUILD_ISOLIB=true + BUILD_CORLIB=true + BUILD_LOGLIB=true +fi + +CC_FOR_BUILD=${CC_FOR_BUILD:-gcc} +AC_SUBST(CC_FOR_BUILD) + +# Propagate GM2_FOR_TARGET into Makefiles +GM2_FOR_TARGET=${GM2_FOR_TARGET:-gcc} +AC_SUBST(GM2_FOR_TARGET) + +# Now we check the target as long as it is a supported host. +# For some embedded targets we choose minimal runtime system which is +# just enough to satisfy the linker targetting raw metal. +if test x${M2_HOST_OS} != xunknown; then +AC_MSG_NOTICE([m2 library building for target ${target}]) +case "$target" in + + avr25*-*-* | avr31*-*-* | avr35*-*-* | avr4*-*-* | avr5*-*-* | avr51*-*-* | avr6*-*-*) + BUILD_PIMLIB=false + BUILD_ISOLIB=false + BUILD_CORLIB=false + BUILD_LOGLIB=false + ;; + + avrxmega2*-*-* | avrxmega4*-*-* | avrxmega5*-*-* | avrxmega6*-*-* | avrxmega7*-*-*) + BUILD_PIMLIB=false + BUILD_ISOLIB=false + BUILD_CORLIB=false + BUILD_LOGLIB=false + ;; + + avr3-*-*) + BUILD_PIMLIB=true + BUILD_ISOLIB=true + BUILD_CORLIB=true + BUILD_LOGLIB=true + ;; + esp32-*-*) + BUILD_PIMLIB=false + BUILD_ISOLIB=false + BUILD_CORLIB=false + BUILD_LOGLIB=false + ;; + +esac +fi + +# GM2_MSG_RESULT issue a query message from the first parameter and a boolean result +# in the second parameter is printed as a "yes" or "no". + +AC_DEFUN([GM2_MSG_RESULT],[ + AC_MSG_CHECKING([$1]) + if test x${$2} = xtrue; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +]) + +if test x${M2_HOST_OS} = xunknown; then + AC_MSG_NOTICE([m2 front end will only build minimal Modula-2 runtime library on this host]) +else + GM2_MSG_RESULT([m2 front end will build PIM libraries:],[BUILD_PIMLIB]) + GM2_MSG_RESULT([m2 front end will build ISO libraries:],[BUILD_ISOLIB]) + GM2_MSG_RESULT([m2 front end will build coroutine libraries:],[BUILD_CORLIB]) + GM2_MSG_RESULT([m2 front end will build Logitech compatability libraries:],[BUILD_LOGLIB]) +fi + +AM_CONDITIONAL([BUILD_PIMLIB], [test x$BUILD_PIMLIB = xtrue]) +AM_CONDITIONAL([BUILD_ISOLIB], [test x$BUILD_ISOLIB = xtrue]) +AM_CONDITIONAL([BUILD_CORLIB], [test x$BUILD_CORLIB = xtrue]) +AM_CONDITIONAL([BUILD_LOGLIB], [test x$BUILD_LOGLIB = xtrue]) + +AC_CONFIG_SRCDIR([Makefile.am]) +AC_CONFIG_FILES([Makefile libm2min/Makefile libm2pim/Makefile libm2iso/Makefile + libm2cor/Makefile libm2log/Makefile]) + +AC_MSG_NOTICE([libgm2 has been configured.]) + +AC_OUTPUT diff -ruw /dev/null gcc-git-devel-modula2/libgm2/autogen.sh --- /dev/null 2022-08-24 16:22:16.888000070 +0100 +++ gcc-git-devel-modula2/libgm2/autogen.sh 2022-12-06 02:56:51.432775922 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh + +# autogen.sh regenerate the autoconf files. +# Copyright 2013-2022 Free Software Foundation, Inc. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING3. If not see +# . + +rm -rf autom4te.cache + +# libtoolize +rm -f aclocal.m4 +# aclocal -I . -I config -I ../config +aclocal -I . -I ../config +autoreconf -I . -I ../config +automake --include-deps + +rm -rf autom4te.cache + +exit 0 diff -ruw /dev/null gcc-git-devel-modula2/libgm2/libm2cor/Makefile.am --- /dev/null 2022-08-24 16:22:16.888000070 +0100 +++ gcc-git-devel-modula2/libgm2/libm2cor/Makefile.am 2022-12-06 02:56:51.432775922 +0000 @@ -0,0 +1,156 @@ +# Makefile for libm2cor. +# Copyright 2013-2022 Free Software Foundation, Inc. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING3. If not see +# . + +SUFFIXES = .c .cc .mod .def .o .obj .lo .a .la + +ACLOCAL_AMFLAGS = -I . -I .. -I ../config + +VPATH = . @srcdir@ @srcdir@/../../gcc/m2/gm2-libs-coroutines + +# Multilib support. +MAKEOVERRIDES= + +version := $(shell $(CC) -dumpversion) + +# Directory in which the compiler finds libraries etc. +libsubdir = $(libdir)/gcc/$(target_alias)/$(version) +# Used to install the shared libgcc. +slibdir = @slibdir@ + +toolexeclibdir=@toolexeclibdir@ +toolexecdir=@toolexecdir@ +GM2_FOR_TARGET=@GM2_FOR_TARGET@ + +MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) +MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) + +MULTIOSSUBDIR := $(shell if test x$(MULTIOSDIR) != x.; then echo /$(MULTIOSDIR); fi) +inst_libdir = $(libsubdir)$(MULTISUBDIR) +inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) + + +# Work around what appears to be a GNU make bug handling MAKEFLAGS +# values defined in terms of make variables, as is the case for CC and +# friends when we are called from the top level Makefile. +AM_MAKEFLAGS = \ + "GCC_DIR=$(GCC_DIR)" \ + "GM2_SRC=$(GM2_SRC)" \ + "AR_FLAGS=$(AR_FLAGS)" \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ + "GM2_FOR_TARGET=$(GM2_FOR_TARGET)" \ + "CFLAGS=$(CFLAGS)" \ + "CXXFLAGS=$(CXXFLAGS)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ + "LDFLAGS=$(LDFLAGS)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ + "MAKE=$(MAKE)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ + "MULTIBUILDTOP=$(MULTIBUILDTOP)" \ + "MULTISUBDIR=$(MULTISUBDIR)" \ + "MULTIOSDIR=$(MULTIOSDIR)" \ + "MULTIFLAGS=$(MULTIFLAGS)" \ + "PICFLAG=$(PICFLAG)" \ + "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ + "SHELL=$(SHELL)" \ + "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ + "exec_prefix=$(exec_prefix)" \ + "infodir=$(infodir)" \ + "libdir=$(libdir)" \ + "includedir=$(includedir)" \ + "prefix=$(prefix)" \ + "tooldir=$(tooldir)" \ + "gxx_include_dir=$(gxx_include_dir)" \ + "AR=$(AR)" \ + "AS=$(AS)" \ + "LD=$(LD)" \ + "RANLIB=$(RANLIB)" \ + "NM=$(NM)" \ + "NM_FOR_BUILD=$(NM_FOR_BUILD)" \ + "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ + "DESTDIR=$(DESTDIR)" \ + "WERROR=$(WERROR)" \ + "TARGET_LIB_PATH_libgm2=$(TARGET_LIB_PATH_libgm2)" + +# Subdir rules rely on $(FLAGS_TO_PASS) +FLAGS_TO_PASS = $(AM_MAKEFLAGS) + + +if BUILD_CORLIB +M2DEFS = Debug.def Executive.def \ + KeyBoardLEDs.def SYSTEM.def \ + TimerHandler.def + +M2MODS = Debug.mod Executive.mod \ + SYSTEM.mod TimerHandler.mod + +toolexeclib_LTLIBRARIES = libm2cor.la + +libm2cor_la_SOURCES = $(M2MODS) KeyBoardLEDs.cc + +nodist_EXTRA_libm2cor_la_SOURCES = dummy.c ## forces automake to generate the LINK definition + +libm2cordir = libm2cor +libm2cor_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2cor_la_SOURCES))) +libm2cor_la_CFLAGS = -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso +libm2cor_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs-coroutines -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -fm2-g -g +libm2cor_la_LINK = $(LINK) -version-info $(libtool_VERSION) +BUILT_SOURCES = SYSTEM.def +CLEANFILES = SYSTEM.def + +M2LIBDIR = /m2/m2cor/ + +SYSTEM.def: Makefile + bash $(GM2_SRC)/tools-src/makeSystem -fpim \ + $(GM2_SRC)/gm2-libs-coroutines/SYSTEM.def \ + $(GM2_SRC)/gm2-libs-coroutines/SYSTEM.mod \ + -I$(GM2_SRC)/gm2-libs-coroutines:$(GM2_SRC)/gm2-libs:$(GM2_SRC)/gm2-libs-iso \ + "$(GM2_FOR_TARGET)" $@ + +.mod.lo: + $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(GM2_FOR_TARGET) -c $(CFLAGS_FOR_TARGET) $(LIBCFLAGS) $(libm2cor_la_M2FLAGS) $< -o $@ + +.cc.lo: + $(LIBTOOL) --tag=CXX --mode=compile $(CXX) -c -I$(srcdir) $(CXXFLAGS) $(LIBCFLAGS) $(libm2cor_la_CFLAGS) $< -o $@ + +install-data-local: force + mkdir -p $(DESTDIR)$(inst_libdir)/$(MULTIDIR)$(M2LIBDIR) + $(INSTALL_DATA) .libs/libm2cor.la $(DESTDIR)$(inst_libdir)/$(MULTIDIR)$(M2LIBDIR) + chmod 644 $(DESTDIR)$(inst_libdir)/$(MULTIDIR)$(M2LIBDIR)libm2cor.la + $(INSTALL_DATA) .libs/libm2cor.a $(DESTDIR)$(inst_libdir)/$(MULTIDIR)$(M2LIBDIR) + chmod 644 $(DESTDIR)$(inst_libdir)/$(MULTIDIR)$(M2LIBDIR)libm2cor.a + $(RANLIB) $(DESTDIR)$(inst_libdir)/$(MULTIDIR)$(M2LIBDIR)libm2cor.a + for i in $(M2DEFS) $(M2MODS) ; do \ + if [ -f $$i ] ; then \ + $(INSTALL_DATA) $$i '$(DESTDIR)$(inst_libdir)/$(MULTIDIR)$(M2LIBDIR)'; \ + elif [ -f @srcdir@/../../gcc/m2/gm2-libs-coroutines/$$i ] ; then \ + $(INSTALL_DATA) @srcdir@/../../gcc/m2/gm2-libs-coroutines/$$i '$(DESTDIR)$(inst_libdir)/$(MULTIDIR)$(M2LIBDIR)'; \ + else \ + echo "cannot find $$i" ; exit 1 ; \ + fi ; \ + chmod 644 $(DESTDIR)$(inst_libdir)/$(MULTIDIR)$(M2LIBDIR)$$i ; \ + done + +force: + +endif diff -ruw /dev/null gcc-git-devel-modula2/libgm2/libm2cor/KeyBoardLEDs.cc --- /dev/null 2022-08-24 16:22:16.888000070 +0100 +++ gcc-git-devel-modula2/libgm2/libm2cor/KeyBoardLEDs.cc 2022-12-06 02:56:51.432775922 +0000 @@ -0,0 +1,157 @@ +/* KeyBoardLEDs.c provide access to the keyboard LEDs. + +Copyright (C) 2005-2022 Free Software Foundation, Inc. +Contributed by Gaius Mulley . + +This file is part of GNU Modula-2. + +GNU Modula-2 is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GNU Modula-2 is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +. */ + +#include +#include + +#if defined(linux) + +#include +#include +#include +#include +#include +#include + +#if !defined(TRUE) +# define TRUE (1==1) +#endif +#if !defined(FALSE) +# define FALSE (1==0) +#endif + +#include + +static int fd; +static int initialized = FALSE; + + +extern "C" void +KeyBoardLEDs_SwitchScroll (int scrolllock) +{ + unsigned char leds; + int r = ioctl (fd, KDGETLED, &leds); + if (scrolllock) + leds = leds | LED_SCR; + else + leds = leds & (~ LED_SCR); + r = ioctl (fd, KDSETLED, leds); +} + +extern "C" void +KeyBoardLEDs_SwitchNum (int numlock) +{ + unsigned char leds; + int r = ioctl (fd, KDGETLED, &leds); + if (numlock) + leds = leds | LED_NUM; + else + leds = leds & (~ LED_NUM); + r = ioctl (fd, KDSETLED, leds); +} + +extern "C" void +KeyBoardLEDs_SwitchCaps (int capslock) +{ + unsigned char leds; + int r = ioctl (fd, KDGETLED, &leds); + if (capslock) + leds = leds | LED_CAP; + else + leds = leds & (~ LED_CAP); + r = ioctl (fd, KDSETLED, leds); +} + +extern "C" void +KeyBoardLEDs_SwitchLeds (int numlock, int capslock, int scrolllock) +{ + KeyBoardLEDs_SwitchScroll (scrolllock); + KeyBoardLEDs_SwitchNum (numlock); + KeyBoardLEDs_SwitchCaps (capslock); +} + +extern "C" void +_M2_KeyBoardLEDs_init (int, char **, char **) +{ + if (! initialized) + { + initialized = TRUE; + fd = open ("/dev/tty", O_RDONLY); + if (fd == -1) + { + perror ("unable to open /dev/tty"); + exit (1); + } + } +} + +#else +extern "C" void +KeyBoardLEDs_SwitchLeds (int numlock, int capslock, int scrolllock) +{ +} + +extern "C" void +KeyBoardLEDs_SwitchScroll (int scrolllock) +{ +} + +extern "C" void +KeyBoardLEDs_SwitchNum (int numlock) +{ +} + +extern "C" void +KeyBoardLEDs_SwitchCaps (int capslock) +{ +} + +extern "C" void +_M2_KeyBoardLEDs_init (int, char **, char **) +{ +} + +#endif + +/* GNU Modula-2 linking hooks. */ + +extern "C" void +_M2_KeyBoardLEDs_finish (int, char **, char **) +{ +} + +extern "C" void +_M2_KeyBoardLEDs_dep (void) +{ +} + +struct _M2_KeyBoardLEDs_ctor { _M2_KeyBoardLEDs_ctor (); } _M2_KeyBoardLEDs_ctor; + +_M2_KeyBoardLEDs_ctor::_M2_KeyBoardLEDs_ctor (void) +{ + M2RTS_RegisterModule ("KeyBoardLEDs", _M2_KeyBoardLEDs_init, _M2_KeyBoardLEDs_finish, + _M2_KeyBoardLEDs_dep); +}