Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Ubuntu VM on Apple Silicon fails to load or compile devIocStats #183

Copy link
Copy link
@prichards-wmko

Description

@prichards-wmko
Issue body actions

I have softIOC code developed on other systems that is failing to run on my Apple Silicon Macbook Pro M2 (in a Parallels virtual machine running Ubuntu), and it appears to be due to the devIocStats feature causing a buffer overflow and then core dump.

My machine:

Linux vm-ubuntu24 6.8.0-51-generic #52-Ubuntu SMP PREEMPT_DYNAMIC Thu Dec  5 13:32:09 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

The easiest way to demonstrate the error; this is on a machine installed last July. I wasn't running devIocStats on it until now.

Python 3.12.4 | packaged by Anaconda, Inc. | (main, Jun 18 2024, 15:03:55) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from softioc import softioc
INFO: PVXS QSRV2 is loaded, permitted, and ENABLED.
>>> softioc.devIocStats('test')
*** buffer overflow detected ***: terminated
Aborted (core dumped)

I also tried to reproduce the problem on a freshly installed Ubuntu 24.04 machine I just made for a test. It fails to compile.

Collecting softioc
  Downloading softioc-4.5.0.tar.gz (82 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting epicscorelibs<7.0.7.99.2,>=7.0.7.99.1.1 (from softioc)
  Using cached epicscorelibs-7.0.7.99.1.1-cp312-cp312-linux_aarch64.whl
Collecting pvxslibs>=1.2.2 (from softioc)
  Downloading pvxslibs-1.3.2.tar.gz (660 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 660.7/660.7 kB 411.8 kB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy in /usr/local/Anaconda3-2024.10-1/lib/python3.12/site-packages (from softioc) (1.26.4)
Collecting epicsdbbuilder>=1.4 (from softioc)
  Downloading epicsdbbuilder-1.5-py3-none-any.whl.metadata (2.8 kB)
Requirement already satisfied: setuptools in /usr/local/Anaconda3-2024.10-1/lib/python3.12/site-packages (from epicscorelibs<7.0.7.99.2,>=7.0.7.99.1.1->softioc) (75.1.0)
Collecting setuptools-dso>=2.11a2 (from epicscorelibs<7.0.7.99.2,>=7.0.7.99.1.1->softioc)
  Using cached setuptools_dso-2.11-py2.py3-none-any.whl.metadata (1.6 kB)
Downloading epicsdbbuilder-1.5-py3-none-any.whl (23 kB)
Using cached setuptools_dso-2.11-py2.py3-none-any.whl (23 kB)
Building wheels for collected packages: softioc, pvxslibs
  Building wheel for softioc (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for softioc (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [149 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/__init__.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/__main__.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/_version_git.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/alarm.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/asyncio_dispatcher.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/builder.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/cothread_dispatcher.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/device.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/device_core.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/fields.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/imports.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/pvlog.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/pythonSoftIoc.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/softioc.py -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/access.acf -> build/lib.linux-aarch64-cpython-312/softioc
      copying softioc/device.dbd -> build/lib.linux-aarch64-cpython-312/softioc
      creating build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      copying softioc/iocStats/devIocStats/Makefile -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      copying softioc/iocStats/devIocStats/devIocStats.dbd -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      copying softioc/iocStats/devIocStats/devIocStats.h -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      copying softioc/iocStats/devIocStats/devIocStatsAnalog.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      copying softioc/iocStats/devIocStats/devIocStatsString.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      copying softioc/iocStats/devIocStats/devIocStatsSub.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      copying softioc/iocStats/devIocStats/devIocStatsTest.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      copying softioc/iocStats/devIocStats/devIocStatsWaveform.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      copying softioc/iocStats/devIocStats/devVxStats.dbd -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      creating build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/Makefile -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/access.db -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/access.doc -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/ioc.template -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocAdminRTEMS.substitutions -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocAdminScanMon.substitutions -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocAdminSoft.substitutions -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocAdminVxWorks.substitutions -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocCluster.template -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocEnvVar.template -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocGeneralTime.template -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocQueue.db -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocRTEMSOnly.template -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocRTOS.template -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocScanMon.template -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocScanMonSum.template -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      copying softioc/iocStats/iocAdmin/Db/iocVxWorksOnly.template -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/iocAdmin/Db
      creating build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/devIocStatsOSD.h -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdBootInfo.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdClustInfo.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdCpuUsage.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdCpuUtilization.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdFdUsage.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdHostInfo.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdIFErrors.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdMemUsage.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdPIDInfo.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdPwdInfo.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdSuspTasks.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdSystemInfo.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      copying softioc/iocStats/devIocStats/os/default/osdWorkspaceUsage.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      creating build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/Darwin
      copying softioc/iocStats/devIocStats/os/Darwin/devIocStatsOSD.h -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/Darwin
      creating build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/WIN32
      copying softioc/iocStats/devIocStats/os/WIN32/devIocStatsOSD.h -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/WIN32
      copying softioc/iocStats/devIocStats/os/WIN32/osdBootInfo.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/WIN32
      copying softioc/iocStats/devIocStats/os/WIN32/osdCpuUtilization.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/WIN32
      copying softioc/iocStats/devIocStats/os/WIN32/osdFdUsage.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/WIN32
      copying softioc/iocStats/devIocStats/os/WIN32/osdHostInfo.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/WIN32
      copying softioc/iocStats/devIocStats/os/WIN32/osdMemUsage.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/WIN32
      copying softioc/iocStats/devIocStats/os/WIN32/osdSystemInfo.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/WIN32
      creating build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/Linux
      copying softioc/iocStats/devIocStats/os/Linux/osdCpuUsage.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/Linux
      copying softioc/iocStats/devIocStats/os/Linux/osdCpuUtilization.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/Linux
      copying softioc/iocStats/devIocStats/os/Linux/osdFdUsage.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/Linux
      copying softioc/iocStats/devIocStats/os/Linux/osdMemUsage.c -> build/lib.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/Linux
      running build_ext
      building 'softioc._extension' extension
      creating build/temp.linux-aarch64-cpython-312/softioc
      creating build/temp.linux-aarch64-cpython-312/softioc/iocStats/devIocStats
      creating build/temp.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/Linux
      creating build/temp.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/os/default
      gcc -pthread -B /usr/local/Anaconda3-2024.10-1/compiler_compat -fno-strict-overflow -Wsign-compare -DNDEBUG -O3 -Wall -fPIC -O3 -isystem /usr/local/Anaconda3-2024.10-1/include -fPIC -O3 -isystem /usr/local/Anaconda3-2024.10-1/include -fPIC -D_GNU_SOURCE -D_DEFAULT_SOURCE -Dlinux -DUNIX -D_GLIBCXX_USE_CXX11_ABI=1 -I/tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include -Isoftioc/iocStats/devIocStats -Isoftioc/iocStats/devIocStats/os/Linux -Isoftioc/iocStats/devIocStats/os/default -I/usr/local/Anaconda3-2024.10-1/include/python3.12 -c softioc/extension.c -o build/temp.linux-aarch64-cpython-312/softioc/extension.o -g0 -std=c99
      In file included from /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbAccess.h:20,
                       from softioc/extension.c:7:
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbBase.h:164:5: warning: ‘rset’ is deprecated [-Wdeprecated-declarations]
        164 |     rset            *prset;
            |     ^~~~
      In file included from /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbBase.h:22:
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/recSup.h:68:8: note: declared here
         68 | struct rset {   /* record support entry table */
            |        ^~~~
      In file included from /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbAccess.h:24:
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbAccessDefs.h:210:42: warning: ‘rset’ is deprecated [-Wdeprecated-declarations]
        210 | DBCORE_API rset * dbGetRset(const struct dbAddr *paddr);
            |                                          ^~~~~~
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/recSup.h:68:8: note: declared here
         68 | struct rset {   /* record support entry table */
            |        ^~~~
      gcc -pthread -B /usr/local/Anaconda3-2024.10-1/compiler_compat -fno-strict-overflow -Wsign-compare -DNDEBUG -O3 -Wall -fPIC -O3 -isystem /usr/local/Anaconda3-2024.10-1/include -fPIC -O3 -isystem /usr/local/Anaconda3-2024.10-1/include -fPIC -D_GNU_SOURCE -D_DEFAULT_SOURCE -Dlinux -DUNIX -D_GLIBCXX_USE_CXX11_ABI=1 -I/tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include -Isoftioc/iocStats/devIocStats -Isoftioc/iocStats/devIocStats/os/Linux -Isoftioc/iocStats/devIocStats/os/default -I/usr/local/Anaconda3-2024.10-1/include/python3.12 -c softioc/iocStats/devIocStats/devIocStatsAnalog.c -o build/temp.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/devIocStatsAnalog.o -g0 -std=c99
      In file included from /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbAccess.h:20,
                       from softioc/iocStats/devIocStats/devIocStatsAnalog.c:118:
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbBase.h:164:5: warning: ‘rset’ is deprecated [-Wdeprecated-declarations]
        164 |     rset            *prset;
            |     ^~~~
      In file included from /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbBase.h:22:
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/recSup.h:68:8: note: declared here
         68 | struct rset {   /* record support entry table */
            |        ^~~~
      In file included from /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbAccess.h:24:
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbAccessDefs.h:210:42: warning: ‘rset’ is deprecated [-Wdeprecated-declarations]
        210 | DBCORE_API rset * dbGetRset(const struct dbAddr *paddr);
            |                                          ^~~~~~
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/recSup.h:68:8: note: declared here
         68 | struct rset {   /* record support entry table */
            |        ^~~~
      gcc -pthread -B /usr/local/Anaconda3-2024.10-1/compiler_compat -fno-strict-overflow -Wsign-compare -DNDEBUG -O3 -Wall -fPIC -O3 -isystem /usr/local/Anaconda3-2024.10-1/include -fPIC -O3 -isystem /usr/local/Anaconda3-2024.10-1/include -fPIC -D_GNU_SOURCE -D_DEFAULT_SOURCE -Dlinux -DUNIX -D_GLIBCXX_USE_CXX11_ABI=1 -I/tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include -Isoftioc/iocStats/devIocStats -Isoftioc/iocStats/devIocStats/os/Linux -Isoftioc/iocStats/devIocStats/os/default -I/usr/local/Anaconda3-2024.10-1/include/python3.12 -c softioc/iocStats/devIocStats/devIocStatsString.c -o build/temp.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/devIocStatsString.o -g0 -std=c99
      In file included from /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbAccess.h:20,
                       from softioc/iocStats/devIocStats/devIocStatsString.c:93:
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbBase.h:164:5: warning: ‘rset’ is deprecated [-Wdeprecated-declarations]
        164 |     rset            *prset;
            |     ^~~~
      In file included from /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbBase.h:22:
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/recSup.h:68:8: note: declared here
         68 | struct rset {   /* record support entry table */
            |        ^~~~
      In file included from /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbAccess.h:24:
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/dbAccessDefs.h:210:42: warning: ‘rset’ is deprecated [-Wdeprecated-declarations]
        210 | DBCORE_API rset * dbGetRset(const struct dbAddr *paddr);
            |                                          ^~~~~~
      /tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include/recSup.h:68:8: note: declared here
         68 | struct rset {   /* record support entry table */
            |        ^~~~
      gcc -pthread -B /usr/local/Anaconda3-2024.10-1/compiler_compat -fno-strict-overflow -Wsign-compare -DNDEBUG -O3 -Wall -fPIC -O3 -isystem /usr/local/Anaconda3-2024.10-1/include -fPIC -O3 -isystem /usr/local/Anaconda3-2024.10-1/include -fPIC -D_GNU_SOURCE -D_DEFAULT_SOURCE -Dlinux -DUNIX -D_GLIBCXX_USE_CXX11_ABI=1 -I/tmp/pip-build-env-f4dm2sp3/overlay/lib/python3.12/site-packages/epicscorelibs/include -Isoftioc/iocStats/devIocStats -Isoftioc/iocStats/devIocStats/os/Linux -Isoftioc/iocStats/devIocStats/os/default -I/usr/local/Anaconda3-2024.10-1/include/python3.12 -c softioc/iocStats/devIocStats/devIocStatsSub.c -o build/temp.linux-aarch64-cpython-312/softioc/iocStats/devIocStats/devIocStatsSub.o -g0 -std=c99
      softioc/iocStats/devIocStats/devIocStatsSub.c: In function ‘scanMonInit’:
      softioc/iocStats/devIocStats/devIocStatsSub.c:91:16: error: implicit declaration of function ‘malloc’ [-Wimplicit-function-declaration]
         91 |   psub->dpvt = malloc(sizeof(epicsTimeStamp));
            |                ^~~~~~
      softioc/iocStats/devIocStats/devIocStatsSub.c:26:1: note: include ‘<stdlib.h>’ or provide a declaration of ‘malloc’
         25 | #include "devIocStats.h"
        +++ |+#include <stdlib.h>
         26 |
      softioc/iocStats/devIocStats/devIocStatsSub.c:91:16: warning: incompatible implicit declaration of built-in function ‘malloc’ [-Wbuiltin-declaration-mismatch]
         91 |   psub->dpvt = malloc(sizeof(epicsTimeStamp));
            |                ^~~~~~
      softioc/iocStats/devIocStats/devIocStatsSub.c:91:16: note: include ‘<stdlib.h>’ or provide a declaration of ‘malloc’
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for softioc
  Building wheel for pvxslibs (pyproject.toml) ... done
  Created wheel for pvxslibs: filename=pvxslibs-1.3.2-cp312-cp312-linux_aarch64.whl size=1947218 sha256=4d61814d8b17ea04a967b5889969140bac7584c0299ea5937933f3e18586de4b
  Stored in directory: /root/.cache/pip/wheels/cb/b2/4e/5385924e571775421b6050a485cc1960c26227e972b21026c8
Successfully built pvxslibs
Failed to build softioc
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (softioc)
Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.