Author Topic: RPM Building Error - parse error 11 in def file  (Read 556 times)

snw

  • Newbie
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
RPM Building Error - parse error 11 in def file
« on: April 12, 2025, 06:07:09 pm »
This project of mine builds fine with the standard ./configure; make; make install incantation, but when building an RPM, I get the following output:

Code: [Select]
libtool: link: printf %s\n "LIBRARY freem0 INITINSTANCE TERMINSTANCE" > .libs/freem.def
libtool: link:  printf %s\n "DESCRIPTION \"freem\"" >> .libs/freem.def
libtool: link:  printf %s\n "DATA MULTIPLE NONSHARED" >> .libs/freem.def
libtool: link:  printf %s\n EXPORTS >> .libs/freem.def
libtool: link:  emxexp  .libs/libfreem_la-iniconf.o .libs/libfreem_la-sighnd.o .libs/libfreem_la-init.o .libs/libfreem_la-expr.o .libs/libfreem_la-global_dispatch.o .libs/libfreem_la-global_bltin.o .libs/libfreem_la-mlib.o .libs/libfreem_la-namespace.o .libs/libfreem_la-operator.o .libs/libfreem_la-service.o .libs/libfreem_la-ssvn.o .libs/libfreem_la-ssvn_character.o .libs/libfreem_la-ssvn_device.o .libs/libfreem_la-ssvn_display.o .libs/libfreem_la-ssvn_event.o .libs/libfreem_la-ssvn_global.o .libs/libfreem_la-ssvn_job.o .libs/libfreem_la-ssvn_library.o .libs/libfreem_la-ssvn_lock.o .libs/libfreem_la-ssvn_routine.o .libs/libfreem_la-ssvn_system.o .libs/libfreem_la-ssvn_window.o .libs/libfreem_la-ssvn_z.o .libs/libfreem_la-ssvn_zos.o .libs/libfreem_la-ssvn_zprocess.o .libs/libfreem_la-ssvn_zfile.o .libs/libfreem_la-ssvn_zfreem.o .libs/libfreem_la-strings.o .libs/libfreem_la-symtab_dispatch.o .libs/libfreem_la-symtab_bltin.o .libs/libfreem_la-views.o .libs/libfreem_la-xecline.o .libs/libfreem_la-transact.o .libs/libfreem_la-iftab.o .libs/libfreem_la-journal.o .libs/libfreem_la-mref.o .libs/libfreem_la-events.o .libs/libfreem_la-mdebug.o .libs/libfreem_la-log.o .libs/libfreem_la-io_socket.o .libs/libfreem_la-merr.o .libs/libfreem_la-mtok.o .libs/libfreem_la-ssvn_zrpi.o .libs/libfreem_la-consttbl.o .libs/libfreem_la-mwapi_window.o .libs/libfreem_la-mwapi_event.o .libs/libfreem_la-shmmgr.o .libs/libfreem_la-locktab.o .libs/libfreem_la-jobtab.o .libs/libfreem_la-tp_check.o .libs/libfreem_la-datatypes.o .libs/libfreem_la-objects.o .libs/libfreem_la-ssvn_object.o .libs/libfreem_la-mcommand.o .libs/libfreem_la-routine.o .libs/libfreem_la-fs.o .libs/libfreem_la-cmd_map.o .libs/libfreem_la-cmd_unmap.o .libs/libfreem_la-cmd_then.o .libs/libfreem_la-cmd_throw.o .libs/libfreem_la-cmd_const.o .libs/libfreem_la-cmd_kvalue.o .libs/libfreem_la-cmd_ksubscripts.o .libs/libfreem_la-cmd_tstart.o .libs/libfreem_la-cmd_tcommit.o .libs/libfreem_la-cmd_trollback.o .libs/libfreem_la-cmd_if.o .libs/libfreem_la-cmd_using.o .libs/libfreem_la-cmd_with.o .libs/libfreem_la-cmd_write.o .libs/libfreem_la-cmd_else.o .libs/libfreem_la-cmd_read.o .libs/libfreem_la-frmgbl.o  | /usr/bin/sed.exe /"_DLL_InitTerm"/d >> .libs/freem.def
libtool: link:  /usr/bin/gcc.exe -Zdll -Zcrtdll -o .libs/freem0.dll  .libs/libfreem_la-iniconf.o .libs/libfreem_la-sighnd.o .libs/libfreem_la-init.o .libs/libfreem_la-expr.o .libs/libfreem_la-global_dispatch.o .libs/libfreem_la-global_bltin.o .libs/libfreem_la-mlib.o .libs/libfreem_la-namespace.o .libs/libfreem_la-operator.o .libs/libfreem_la-service.o .libs/libfreem_la-ssvn.o .libs/libfreem_la-ssvn_character.o .libs/libfreem_la-ssvn_device.o .libs/libfreem_la-ssvn_display.o .libs/libfreem_la-ssvn_event.o .libs/libfreem_la-ssvn_global.o .libs/libfreem_la-ssvn_job.o .libs/libfreem_la-ssvn_library.o .libs/libfreem_la-ssvn_lock.o .libs/libfreem_la-ssvn_routine.o .libs/libfreem_la-ssvn_system.o .libs/libfreem_la-ssvn_window.o .libs/libfreem_la-ssvn_z.o .libs/libfreem_la-ssvn_zos.o .libs/libfreem_la-ssvn_zprocess.o .libs/libfreem_la-ssvn_zfile.o .libs/libfreem_la-ssvn_zfreem.o .libs/libfreem_la-strings.o .libs/libfreem_la-symtab_dispatch.o .libs/libfreem_la-symtab_bltin.o .libs/libfreem_la-views.o .libs/libfreem_la-xecline.o .libs/libfreem_la-transact.o .libs/libfreem_la-iftab.o .libs/libfreem_la-journal.o .libs/libfreem_la-mref.o .libs/libfreem_la-events.o .libs/libfreem_la-mdebug.o .libs/libfreem_la-log.o .libs/libfreem_la-io_socket.o .libs/libfreem_la-merr.o .libs/libfreem_la-mtok.o .libs/libfreem_la-ssvn_zrpi.o .libs/libfreem_la-consttbl.o .libs/libfreem_la-mwapi_window.o .libs/libfreem_la-mwapi_event.o .libs/libfreem_la-shmmgr.o .libs/libfreem_la-locktab.o .libs/libfreem_la-jobtab.o .libs/libfreem_la-tp_check.o .libs/libfreem_la-datatypes.o .libs/libfreem_la-objects.o .libs/libfreem_la-ssvn_object.o .libs/libfreem_la-mcommand.o .libs/libfreem_la-routine.o .libs/libfreem_la-fs.o .libs/libfreem_la-cmd_map.o .libs/libfreem_la-cmd_unmap.o .libs/libfreem_la-cmd_then.o .libs/libfreem_la-cmd_throw.o .libs/libfreem_la-cmd_const.o .libs/libfreem_la-cmd_kvalue.o .libs/libfreem_la-cmd_ksubscripts.o .libs/libfreem_la-cmd_tstart.o .libs/libfreem_la-cmd_tcommit.o .libs/libfreem_la-cmd_trollback.o .libs/libfreem_la-cmd_if.o .libs/libfreem_la-cmd_using.o .libs/libfreem_la-cmd_with.o .libs/libfreem_la-cmd_write.o .libs/libfreem_la-cmd_else.o .libs/libfreem_la-cmd_read.o .libs/libfreem_la-frmgbl.o   -lm -lreadline  -Zomf   .libs/freem.def
weakld: C:/Home/rpmbuild/BUILD/freem-0.62.3/src/.libs/freem.def - error: Parse error 11 on line 1. (stmt=81)
weakld: error: Parse error 1 on line 11. (errorcode=81 stmt=1836009564)
emxomfld: Invalid statement (line 1 of C:/Home/rpmbuild/BUILD/freem-0.62.3/src/.libs/freem.def)make[2]: *** [Makefile:837: libfreem.la] Error 1

The top few lines of freem.def look like this:
Code: [Select]
LIBRARY freem0 INITINSTANCE TERMINSTANCEnDESCRIPTION "freem"nDATA MULTIPLE NONSHAREDnEXPORTSn  ; segment DATA32
  "_pending_signal_type"                                                ; magicseg='DATA32' len=20
  "_ssv_tab"                                                            ; magicseg='DATA32' len=8
  "_evt_queue_rear"                                                     ; magicseg='DATA32' len=15

It appears that the newline escape sequences from printf aren't being interpreted properly, as a non-RPM build splits that same output into several lines, with the breaks everywhere you see a suspicious 'n' character in the above.

Any hints?

TIA!

My specfile looks like this (based on docs I found online):

Code: [Select]
Name:           freem
Version:        0.62.3
Release:        1%{?dist}
Summary:        Coherent Logic FreeM MUMPS interpreter and database
License:        AGPL-3.0
URL:            http://freem.coherent-logic.com/
Source0:        http://freem.coherent-logic.com/downloads/freem-%{version}.tar.gz

BuildRequires:  gcc
BuildRequires:  libtool
BuildRequires:  texinfo
BuildRequires: readline-devel
BuildRequires:  gcc-wlink
BuildRequires:  gcc-wrc
BuildRequires:  kbuild-make

%description
Coherent Logic FreeM MUMPS interpreter and database

%prep
%setup -q

%build
CONFIG_SHELL="/bin/sh"; export CONFIG_SHELL;\
%configure CC=/usr/bin/gcc.exe GREP=/usr/bin/grep.exe SED=/usr/bin/sed.exe CFLAGS=-Zomf
make LDFLAGS=-no-undefined

%install
%{make_install} PREFIX=%{_prefix}

%files

... snipped ...
« Last Edit: April 12, 2025, 06:08:44 pm by snw »

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5344
  • Karma: +127/-1
    • View Profile
Re: RPM Building Error - parse error 11 in def file
« Reply #1 on: April 12, 2025, 06:35:54 pm »
Shell issue? Wonder which printf you are using, printf.exe or the shell's builtin printf. You could try experimenting with the $config.shell, there's dash's sh.exe and bash. Also what is your makeshell set to. Find out by running just SET MAKESHELL mine,
Code: [Select]
>set makeshell
MAKESHELL=sh.exe

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5344
  • Karma: +127/-1
    • View Profile
Re: RPM Building Error - parse error 11 in def file
« Reply #2 on: April 12, 2025, 06:52:04 pm »
You might want to go to https://github.com/bitwiseworks/rpm-specs and find a spec close to what you need and modify it.
There's OS/2 specific macros. Looking at some logs of rpms I built here, they all start similar to,
Code: [Select]
Building for target pentium4-OS/2-OS/2
Executing(%prep): /@unixroot/usr/bin/sh -e /@unixroot/var/tmp/rpm-tmp.OfOe63
+ umask 022
+ export SHELL=/@unixroot/usr/bin/sh.exe
+ export CONFIG_SHELL=/@unixroot/usr/bin/sh.exe
+ export MAKESHELL=/@unixroot/usr/bin/sh.exe
+ cd k:/rpmbuild/BUILD
I'm not a RPM expert
« Last Edit: April 12, 2025, 06:54:16 pm by Dave Yeo »

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5344
  • Karma: +127/-1
    • View Profile